Patch Detail
Show a patch.
GET /api/patches/24084/?format=api
{ "id": 24084, "url": "https://patchwork.libcamera.org/api/patches/24084/?format=api", "web_url": "https://patchwork.libcamera.org/patch/24084/", "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": "<20250808141315.413839-14-stefan.klug@ideasonboard.com>", "date": "2025-08-08T14:12:51", "name": "[v2,13/16] ipa: rkisp1: Switch histogram to RGB combined mode", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "3324e577f9148173acee7c61f84a5329e0e43402", "submitter": { "id": 184, "url": "https://patchwork.libcamera.org/api/people/184/?format=api", "name": "Stefan Klug", "email": "stefan.klug@ideasonboard.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/24084/mbox/", "series": [ { "id": 5364, "url": "https://patchwork.libcamera.org/api/series/5364/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5364", "date": "2025-08-08T14:12:38", "name": "Implement WDR algorithm", "version": 2, "mbox": "https://patchwork.libcamera.org/series/5364/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/24084/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/24084/checks/", "tags": {}, "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 F06B0BDCC1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 8 Aug 2025 14:14:24 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AED5069232;\n\tFri, 8 Aug 2025 16:14:24 +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 321A569227\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 8 Aug 2025 16:14:22 +0200 (CEST)", "from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:3ea1:35ac:90da:a221])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 4979E185B; \n\tFri, 8 Aug 2025 16:13:32 +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=\"R5k7m6wd\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1754662412;\n\tbh=xPxMkPGumdL56UfZRC/HPYUQFQ5qqJ1DhuZq9STAE9U=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=R5k7m6wdnrvWkpb4L29UKTWLLxzq+trSVLpAPqXlq1+R7XnBdmr7LsIgcEIzWzD1H\n\t1cGc180h199bFdOGoFqNIvUQDYgDjCY9xDzvx/ffwyJTopH8h7MsJ+fmIPuQDkp+iY\n\tY5YRYasDECD7blNp1sbm5h68HgE0DDpn16+5DgSI=", "From": "Stefan Klug <stefan.klug@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Stefan Klug <stefan.klug@ideasonboard.com>,\n\tPaul Elder <paul.elder@ideasonboard.com>", "Subject": "[PATCH v2 13/16] ipa: rkisp1: Switch histogram to RGB combined mode", "Date": "Fri, 8 Aug 2025 16:12:51 +0200", "Message-ID": "<20250808141315.413839-14-stefan.klug@ideasonboard.com>", "X-Mailer": "git-send-email 2.48.1", "In-Reply-To": "<20250808141315.413839-1-stefan.klug@ideasonboard.com>", "References": "<20250808141315.413839-1-stefan.klug@ideasonboard.com>", "MIME-Version": "1.0", "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": "The Y mode of the histogram gets captured at the ISP output, before the\noutput formatter. This has the side effect that the first and the last\nbins are empty in case of limited YUV range. Another side effect is\nthat gamma and GWDR processing is included in the histogram which makes\nalgorithm development very difficult. In RGB mode the histogram is taken\nafter xtalk (CCM) and is therefore independent of gamma and WDR. The\nlimited range issue also does not apply. In the ISP reference it is\nhowever stated that \"it is not possible to calculate a luminance or\ngrayscale histogram from an RGB histogram since the position information\nis lost during its generation\".\n\nDuring testing the RGB histogram provided good data and better\nalgorithmic stability at a possible (but not measured) inaccuracy.\n\nAnother option would be to pass the color space information into the IPA\nand strip the histogram accordingly. For ease of implementation switch to\nthe RGB mode.\n\nSigned-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n---\n src/ipa/rkisp1/algorithms/agc.cpp | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)", "diff": "diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\nindex d34c041f9fe1..8227d60213c2 100644\n--- a/src/ipa/rkisp1/algorithms/agc.cpp\n+++ b/src/ipa/rkisp1/algorithms/agc.cpp\n@@ -396,7 +396,7 @@ void Agc::prepare(IPAContext &context, const uint32_t frame,\n \thstConfig.setEnabled(true);\n \n \thstConfig->meas_window = context.configuration.agc.measureWindow;\n-\thstConfig->mode = RKISP1_CIF_ISP_HISTOGRAM_MODE_Y_HISTOGRAM;\n+\thstConfig->mode = RKISP1_CIF_ISP_HISTOGRAM_MODE_RGB_COMBINED;\n \n \tSpan<uint8_t> weights{\n \t\thstConfig->hist_weight,\n", "prefixes": [ "v2", "13/16" ] }