Cover Letter Detail
Show a cover letter.
GET /api/covers/27449/?format=api
{ "id": 27449, "url": "https://patchwork.libcamera.org/api/covers/27449/?format=api", "web_url": "https://patchwork.libcamera.org/cover/27449/", "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": "<20260723154327.1357866-1-barnabas.pocze@ideasonboard.com>", "date": "2026-07-23T15:42:43", "name": "[RFC,v2,00/43] ipa: libipa: agc rework", "submitter": { "id": 216, "url": "https://patchwork.libcamera.org/api/people/216/?format=api", "name": "Barnabás Pőcze", "email": "barnabas.pocze@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/27449/mbox/", "series": [ { "id": 6075, "url": "https://patchwork.libcamera.org/api/series/6075/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=6075", "date": "2026-07-23T15:42:43", "name": "ipa: libipa: agc rework", "version": 2, "mbox": "https://patchwork.libcamera.org/series/6075/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/27449/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 01AFDBDE17\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 23 Jul 2026 15:43:31 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9B4DF67EC9;\n\tThu, 23 Jul 2026 17:43:31 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1ACAB67E5C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 23 Jul 2026 17:43:30 +0200 (CEST)", "from pb-laptop.local (185.182.215.156.nat.pool.zt.hu\n\t[185.182.215.156])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 41C021C37\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 23 Jul 2026 17:42:29 +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=\"fMCepvy2\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1784821349;\n\tbh=lzeKKdQ5nMdR9vRbVuqoG8piKf4X33yQTgrpGnouPrM=;\n\th=From:To:Subject:Date:From;\n\tb=fMCepvy20FmmE48iY1RjmGiWwV+UL1do1nJ/O20vJ97A9HMI6cYuYvIwHqwo/Y59u\n\tY36F7X+2yKBJ2rpw4LWl5iaEos0lUcJN+/y7KRG/7SUdedX5sGE1jDraPUvIfcyh40\n\tIODlaeZuuOUN/dGaVS1FDiz7W+jbB7Pyq9M6zh40=", "From": "=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Subject": "[RFC PATCH v2 00/43] ipa: libipa: agc rework", "Date": "Thu, 23 Jul 2026 17:42:43 +0200", "Message-ID": "<20260723154327.1357866-1-barnabas.pocze@ideasonboard.com>", "X-Mailer": "git-send-email 2.55.0", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "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": "Unfortunately the first version did not work out because there is a desire\nfor at least some kind of rudimentary operation even without a CameraSensorHelper\nin the general algorithm.\n\nSo this version adds an `AgcAlgorithm` that is essentially a copy of the rkisp1\nagc algorithm, only that it can either use AgcMeanLuminance or the agc algorithm\nfrom the simple ipa module (which is now moved into libipa).\n\nSimilarly to the previous version, the following ipa modules are converted:\n * ipu3\n * mali-c55\n * rkisp1\n * simple\n\nThis applies on top of the current master branch, not rebased on any of the libipa\nrework yet. Conflicts should be minimal.\n\nv1: https://patchwork.libcamera.org/cover/27179/\n\nBarnabás Pőcze (43):\n libcamera: software_isp: init(): Fix documentation typo\n ipa: simple: Remove control presence sanity check\n ipa: simple: agc: Do not overwrite sensor exposure/gain\n ipa: rkisp1: Remove `IPASessionConfiguration::sensor.defVBlank`\n ipa: libipa: agc_mean_luminance: Remove the need for inheritance\n ipa: rkisp1: Move sensor control info map to context\n ipa: rkisp1: Update sensor info when configuring\n ipa: rkisp1: updateControls(): Use sensor info from context\n ipa: rkisp1: Move AGC related controls into AGC algorithm\n ipa: mali-c55: Remove `DigitalGain` support\n ipa: libipa: agc_mean_luminance: Avoid some duplicate lookups\n ipa: libipa: agc_mean_luminance: Remove unnecessary `std::shared_ptr`\n ipa: libipa: agc_mean_luminance: calculateNewEv(): Fix typo\n ipa: libipa: agc_mean_luminance: calculateNewEv(): Collect params\n ipa: libipa: agc_mean_luminance: constraintClampGain(): Mark `const`\n ipa: libipa: agc_mean_luminance: calculateNewEv(): Collect results\n ipa: libipa: agc_mean_luminance: calculateNewEv(): Return y target\n ipa: libipa: agc_mean_luminance: Remove persistent params\n ipa: libipa: agc_mean_luminance: Reset `filteredExposure_` when\n configuring\n ipa: Simplify sensor exposure/gain setting/getting\n ipa: libipa: Add `AgcAlgorithm`\n ipa: libipa: agc: Clamp exposure value\n ipa: libipa: agc: Adjust debug messages slightly\n ipa: libipa: agc: Use full range as default `FrameDurationLimits`\n ipa: libipa: agc: Use default exposure\n ipa: rkisp1: agc: Port to `AgcAlgorithm`\n ipa: mali-c55: agc: Port to `AgcAlgorithm`\n ipa: ipu3: agc: Port to `AgcAlgorithm`\n ipa: libipa: agc_mean_luminance: Remove control handling\n ipa: libipa: histogram: total(): Use `back()`\n ipa: libipa: histogram: Add `operator[]` to query bin\n ipa: simple: Store exposure as `uint32_t`\n ipa: simple: agc: Separate MSV calculation\n ipa: simple: agc: Simplify min gain step handling\n ipa: simple: agc: Use `Histogram`\n ipa: simple: agc: Adjust histogram for black level\n ipa: simple: agc: Move to libipa\n ipa: libipa: agc_msv: Ensure limits are always respected\n ipa: libipa: agc_msv: Handle min gain > 1.0 case\n ipa: simple: Move sensor helper and controls to context\n ipa: simple: Update controls after configuration\n ipa: libipa: agc: Work without `CameraSensorHelper`\n ipa: simple: agc: Port to `AgcAlgorithm`\n\n .../internal/software_isp/software_isp.h | 3 +-\n include/libcamera/ipa/soft.mojom | 2 +-\n src/ipa/ipu3/algorithms/agc.cpp | 197 +++--\n src/ipa/ipu3/algorithms/agc.h | 21 +-\n src/ipa/ipu3/ipa_context.cpp | 49 +-\n src/ipa/ipu3/ipa_context.h | 27 +-\n src/ipa/ipu3/ipu3.cpp | 141 +---\n src/ipa/libipa/agc.cpp | 756 ++++++++++++++++++\n src/ipa/libipa/agc.h | 152 ++++\n src/ipa/libipa/agc_mean_luminance.cpp | 229 +++---\n src/ipa/libipa/agc_mean_luminance.h | 58 +-\n src/ipa/libipa/agc_msv.cpp | 224 ++++++\n src/ipa/libipa/agc_msv.h | 51 ++\n src/ipa/libipa/exposure_mode_helper.cpp | 19 +-\n src/ipa/libipa/exposure_mode_helper.h | 11 +-\n src/ipa/libipa/histogram.cpp | 6 +\n src/ipa/libipa/histogram.h | 9 +-\n src/ipa/libipa/meson.build | 4 +\n src/ipa/mali-c55/algorithms/agc.cpp | 203 ++---\n src/ipa/mali-c55/algorithms/agc.h | 9 +-\n src/ipa/mali-c55/ipa_context.h | 38 +-\n src/ipa/mali-c55/mali-c55.cpp | 165 +---\n src/ipa/rkisp1/algorithms/agc.cpp | 460 +++--------\n src/ipa/rkisp1/algorithms/agc.h | 15 +-\n src/ipa/rkisp1/algorithms/lux.cpp | 2 +-\n src/ipa/rkisp1/ipa_context.cpp | 104 +--\n src/ipa/rkisp1/ipa_context.h | 50 +-\n src/ipa/rkisp1/rkisp1.cpp | 127 +--\n src/ipa/simple/algorithms/agc.cpp | 226 ++----\n src/ipa/simple/algorithms/agc.h | 15 +-\n src/ipa/simple/algorithms/blc.cpp | 12 +\n src/ipa/simple/ipa_context.h | 22 +-\n src/ipa/simple/soft_simple.cpp | 101 +--\n src/libcamera/pipeline/simple/simple.cpp | 2 +-\n src/libcamera/software_isp/software_isp.cpp | 12 +-\n 35 files changed, 1871 insertions(+), 1651 deletions(-)\n create mode 100644 src/ipa/libipa/agc.cpp\n create mode 100644 src/ipa/libipa/agc.h\n create mode 100644 src/ipa/libipa/agc_msv.cpp\n create mode 100644 src/ipa/libipa/agc_msv.h\n\n--\n2.55.0" }