Patch Detail
Show a patch.
GET /api/1.1/patches/20931/?format=api
{ "id": 20931, "url": "https://patchwork.libcamera.org/api/1.1/patches/20931/?format=api", "web_url": "https://patchwork.libcamera.org/patch/20931/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/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": "<20240815081622.174210-19-mzamazal@redhat.com>", "date": "2024-08-15T08:16:22", "name": "[v4,18/18] libcamera: software_isp: Update black level only on exposure changes", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "bf88930b2d7ab0014588876037abd30b2011a016", "submitter": { "id": 177, "url": "https://patchwork.libcamera.org/api/1.1/people/177/?format=api", "name": "Milan Zamazal", "email": "mzamazal@redhat.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/20931/mbox/", "series": [ { "id": 4520, "url": "https://patchwork.libcamera.org/api/1.1/series/4520/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4520", "date": "2024-08-15T08:16:04", "name": "Software ISP refactoring", "version": 4, "mbox": "https://patchwork.libcamera.org/series/4520/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/20931/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/20931/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 39D13C32D8\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 15 Aug 2024 08:17:44 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AC1B8633D8;\n\tThu, 15 Aug 2024 10:17:43 +0200 (CEST)", "from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 234D6633D4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 15 Aug 2024 10:17:40 +0200 (CEST)", "from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-308-sJGT8pB1M-iRG174z0TLeg-1;\n\tThu, 15 Aug 2024 04:17:36 -0400", "from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.40])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id 4D4081955D4D; Thu, 15 Aug 2024 08:17:34 +0000 (UTC)", "from nuthatch.redhat.com (unknown [10.45.225.128])\n\tby mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 868DA19560A3; Thu, 15 Aug 2024 08:17:32 +0000 (UTC)" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"B63RWCtY\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1723709859;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=G6Rb7ZNQHHJHzus5nxcQH64kx4ElvfE8MPFWA9uBZ+E=;\n\tb=B63RWCtYQ/lhc4toVsy7XQabFF0qe3f6ZwnUDjHY7Q2drCBoHohkYIegsh5OL5ydFGGTxk\n\tztTjs0bVZ1aYz1L9Owwh+b3t+XeHXgTIJdCkPqPsjRryJ9+/1CbeuO1azfJxxPh8kCfYji\n\tPy2ecpQQSPPo02QBWf8RseRtyEQ4PyI=", "X-MC-Unique": "sJGT8pB1M-iRG174z0TLeg-1", "From": "Milan Zamazal <mzamazal@redhat.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Milan Zamazal <mzamazal@redhat.com>,\n\tUmang Jain <umang.jain@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tDaniel Scally <dan.scally@ideasonboard.com>", "Subject": "[PATCH v4 18/18] libcamera: software_isp: Update black level only on\n\texposure changes", "Date": "Thu, 15 Aug 2024 10:16:22 +0200", "Message-ID": "<20240815081622.174210-19-mzamazal@redhat.com>", "In-Reply-To": "<20240815081622.174210-1-mzamazal@redhat.com>", "References": "<20240815081622.174210-1-mzamazal@redhat.com>", "MIME-Version": "1.0", "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.40", "X-Mimecast-Spam-Score": "0", "X-Mimecast-Originator": "redhat.com", "Content-Transfer-Encoding": "8bit", "Content-Type": "text/plain; charset=\"US-ASCII\"; x-default=true", "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 black level is likely to get updated, if ever, only after exposure\nor gain changes. Don't compute its possible updates if exposure and\ngain are unchanged.\n\nIt's probably not worth trying to implement something more\nsophisticated. Better to spend the effort on supporting tuning files.\n\nSigned-off-by: Milan Zamazal <mzamazal@redhat.com>\n---\n src/ipa/simple/algorithms/blc.cpp | 9 ++++++++-\n src/ipa/simple/algorithms/blc.h | 4 ++++\n 2 files changed, 12 insertions(+), 1 deletion(-)", "diff": "diff --git a/src/ipa/simple/algorithms/blc.cpp b/src/ipa/simple/algorithms/blc.cpp\nindex ab7e7dd9..d01c2c14 100644\n--- a/src/ipa/simple/algorithms/blc.cpp\n+++ b/src/ipa/simple/algorithms/blc.cpp\n@@ -30,10 +30,15 @@ int BlackLevel::init(IPAContext &context,\n \n void BlackLevel::process(IPAContext &context,\n \t\t\t [[maybe_unused]] const uint32_t frame,\n-\t\t\t [[maybe_unused]] IPAFrameContext &frameContext,\n+\t\t\t IPAFrameContext &frameContext,\n \t\t\t const SwIspStats *stats,\n \t\t\t [[maybe_unused]] ControlList &metadata)\n {\n+\tif (frameContext.sensor.exposure == exposure_ &&\n+\t frameContext.sensor.gain == gain_) {\n+\t\treturn;\n+\t}\n+\n \tconst SwIspStats::Histogram &histogram = stats->yHistogram;\n \n \t/*\n@@ -54,6 +59,8 @@ void BlackLevel::process(IPAContext &context,\n \t\tif (seen >= pixelThreshold) {\n \t\t\tcontext.activeState.black.level =\n \t\t\t\tstatic_cast<double>(i) / SwIspStats::kYHistogramSize;\n+\t\t\texposure_ = frameContext.sensor.exposure;\n+\t\t\tgain_ = frameContext.sensor.gain;\n \t\t\tLOG(IPASoftBL, Debug)\n \t\t\t\t<< \"Auto-set black level: \"\n \t\t\t\t<< i << \"/\" << SwIspStats::kYHistogramSize\ndiff --git a/src/ipa/simple/algorithms/blc.h b/src/ipa/simple/algorithms/blc.h\nindex 2f73db52..9b9daab1 100644\n--- a/src/ipa/simple/algorithms/blc.h\n+++ b/src/ipa/simple/algorithms/blc.h\n@@ -30,6 +30,10 @@ public:\n \t\t IPAFrameContext &frameContext,\n \t\t const SwIspStats *stats,\n \t\t ControlList &metadata) override;\n+\n+private:\n+\tuint32_t exposure_;\n+\tdouble gain_;\n };\n \n } /* namespace ipa::soft::algorithms */\n", "prefixes": [ "v4", "18/18" ] }