Cover Letter Detail
Show a cover letter.
GET /api/covers/26483/?format=api
{ "id": 26483, "url": "https://patchwork.libcamera.org/api/covers/26483/?format=api", "web_url": "https://patchwork.libcamera.org/cover/26483/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20260407-kbingham-awb-split-v1-0-a39af3f4dc20@ideasonboard.com>", "date": "2026-04-07T22:01:03", "name": "[00/13] ipa: simple: Convert to libipa AWB implementation", "submitter": { "id": 4, "url": "https://patchwork.libcamera.org/api/people/4/?format=api", "name": "Kieran Bingham", "email": "kieran.bingham@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/26483/mbox/", "series": [ { "id": 5874, "url": "https://patchwork.libcamera.org/api/series/5874/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5874", "date": "2026-04-07T22:01:03", "name": "ipa: simple: Convert to libipa AWB implementation", "version": 1, "mbox": "https://patchwork.libcamera.org/series/5874/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/26483/comments/", "headers": { "Return-Path": "<libcamera-devel-bounces@lists.libcamera.org>", "X-Original-To": "parsemail@patchwork.libcamera.org", "Delivered-To": "parsemail@patchwork.libcamera.org", "Received": [ "from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 5DFF1BDCBD\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 7 Apr 2026 22:02:45 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 768F062DB5;\n\tWed, 8 Apr 2026 00:02:43 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B6F4A62CEB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 8 Apr 2026 00:02:40 +0200 (CEST)", "from [192.168.0.204] (ams.linuxembedded.co.uk [209.38.108.23])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id BBC1A667;\n\tWed, 8 Apr 2026 00:01:12 +0200 (CEST)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"PiIDJUet\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1775599272;\n\tbh=6+mVYyQ5ebGu/DoOLfr93wj1t8EjPHDOhE41URuAa3o=;\n\th=From:Subject:Date:To:Cc:From;\n\tb=PiIDJUetOQ4TzeG8rp5HLkvadIwVLwQw7XcqUvqHqgORJMLWkiNQ06ZxPl1xto4yu\n\tot9HJTRwxPB/4p26uimj5ZfEA5J4Hv+B3CdIcvxu4xV1R7tv727wt35QjfmsUa6bZQ\n\t5Rutkw82aSzO+YI9v0EOO4bltpteLqZreA45OrxM=", "From": "Kieran Bingham <kieran.bingham@ideasonboard.com>", "Subject": "[PATCH 00/13] ipa: simple: Convert to libipa AWB implementation", "Date": "Tue, 07 Apr 2026 23:01:03 +0100", "Message-Id": "<20260407-kbingham-awb-split-v1-0-a39af3f4dc20@ideasonboard.com>", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "7bit", "X-B4-Tracking": "v=1; b=H4sIAAAAAAAC/6tWKk4tykwtVrJSqFYqSi3LLM7MzwNyDHUUlJIzE\n\tvPSU3UzU4B8JSMDIzMDYyND3eykzLz0jMRc3cTyJN3igpzMEt0UQ2OD1NRUc7NUYzMloMaCotS\n\t0zAqwodGxtbUAVKOdL2QAAAA=", "X-Change-ID": "20260321-kbingham-awb-split-d130eee76e36", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Kieran Bingham <kieran.bingham@ideasonboard.com>, \n\tMilan Zamazal <mzamazal@redhat.com>", "X-Mailer": "b4 0.14.2", "X-Developer-Signature": "v=1; a=ed25519-sha256; t=1775599359; l=3827;\n\ti=kieran.bingham@ideasonboard.com; s=20260204;\n\th=from:subject:message-id; \n\tbh=6+mVYyQ5ebGu/DoOLfr93wj1t8EjPHDOhE41URuAa3o=;\n\tb=6pSWA0BLlSos7gjGKM+RjfPju3rtD9CtOIZxBowOPEifKPd8ATfpYYpecFav7KVSJyqab2OpX\n\twlHgkWCLe5mDGQxYyO2qMgLrmpwZaGeQbtzoRhgDM8+g3DtPEQjU3Bg", "X-Developer-Key": "i=kieran.bingham@ideasonboard.com; a=ed25519;\n\tpk=IOxS2C6nWHNjLfkDR71Iesk904i6wJDfEERqV7hDBdY=", "X-BeenThere": "libcamera-devel@lists.libcamera.org", "X-Mailman-Version": "2.1.29", "Precedence": "list", "List-Id": "<libcamera-devel.lists.libcamera.org>", "List-Unsubscribe": "<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>", "List-Archive": "<https://lists.libcamera.org/pipermail/libcamera-devel/>", "List-Post": "<mailto:libcamera-devel@lists.libcamera.org>", "List-Help": "<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>", "List-Subscribe": "<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "This series starts by clearing the unpacked fragment shader to keep the\nsame indentation in both shader types to ease future patches.\n\nThen there is a quite substantial patch which splits the AWB handling\nfor the SoftISP out of the combined matrix.\n\nThis is important to be able to prevent saturation issues in bright\nregions showing up as neon colours. The AWB is applied and then the\nresult is clamped to the sensor range (at that point with black level\nsubtracted).\n\nThe gains are then fixed in the CPU ISP, with contributions from Milan.\n\nThe GPU CCM matrix multiplication is simplified to use the native GPU\nmultiplication types, and adapts the ordering when the uniforms are\ncreated.\n\nWe then refactor the libipa lux algorithm to provide a common data\nstructure and move the RKISP1 implementation to use this new type.\n\nThat allows the Simple IPA to re-use the lux algorithm without\nduplicating the data structures.\n\nThe same approach is then taken to convert the Awb structures to common\ndefinitions and the simple IPA is refactored to be able to utilise the\nlibipa AWB implementation.\n\nThe AWB implementations for configure, queueReqeust, and prepare are\nthen refactored into functions that can be directly called in the libipa\nimplementation to reduce duplicating identical code when adding a new\nplatform to use AWB.\n\nThe last conversion patches might also further refactor common details\nfrom the initialisation functions and process functions, and also the\nstats helpers are completely duplicated, so they'll be in the next\nversion too.\n\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\nKieran Bingham (11):\n libcamera: shaders: unpacked: Fix indentations\n softisp: Split AWB from Combined Matrix\n shaders: bayer: Use native matrix multiplication\n ipa: libipa: provide lux context structures\n ipa: simple: Add lux algorithm to the SoftIPA\n ipa: libipa: Awb: Provide common context storage\n libcamera: vector: Convertor Constructor\n ipa: simple: Convert awb to libipa implementation\n ipa: libipa: awb: Move configure to common\n ipa: libipa: awb: convert to common queueRequest\n ipa: libipa: awb: factor out common prepare\n\nMilan Zamazal (2):\n libcamera: software_isp: Fix black level handling in CPU ISP\n libcamera: software_isp: Apply gains in CPU ISP\n\n include/libcamera/internal/vector.h | 8 +\n src/ipa/libipa/awb.cpp | 155 ++++++++++++++++++++\n src/ipa/libipa/awb.h | 38 +++++\n src/ipa/libipa/lux.cpp | 16 ++\n src/ipa/libipa/lux.h | 12 ++\n src/ipa/rkisp1/algorithms/awb.cpp | 73 +--------\n src/ipa/rkisp1/ipa_context.h | 41 ++----\n src/ipa/simple/algorithms/awb.cpp | 171 +++++++++++++++++-----\n src/ipa/simple/algorithms/awb.h | 12 ++\n src/ipa/simple/algorithms/ccm.cpp | 2 +-\n src/ipa/simple/algorithms/lux.cpp | 93 ++++++++++++\n src/ipa/simple/algorithms/lux.h | 39 +++++\n src/ipa/simple/algorithms/meson.build | 1 +\n src/ipa/simple/ipa_context.h | 20 +--\n src/libcamera/shaders/bayer_1x_packed.frag | 47 +-----\n src/libcamera/shaders/bayer_unpacked.frag | 228 ++++++++++++-----------------\n src/libcamera/software_isp/debayer_cpu.cpp | 71 ++++-----\n src/libcamera/software_isp/debayer_egl.cpp | 17 +--\n src/libcamera/software_isp/debayer_egl.h | 3 +\n src/libcamera/vector.cpp | 7 +\n 20 files changed, 693 insertions(+), 361 deletions(-)\n---\nbase-commit: 7528d65aeee57c02ea5b085a3e3d364f23ed4ade\nchange-id: 20260321-kbingham-awb-split-d130eee76e36\n\nBest regards," }