Patch Detail
Show a patch.
GET /api/patches/20411/?format=api
{ "id": 20411, "url": "https://patchwork.libcamera.org/api/patches/20411/?format=api", "web_url": "https://patchwork.libcamera.org/patch/20411/", "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": "<20240626072100.55497-20-mzamazal@redhat.com>", "date": "2024-06-26T07:21:00", "name": "[19/19] libcamera: software_isp: Update black level only on exposure changes", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "d5a2e07082f70e210915b004bb25122208c558a7", "submitter": { "id": 177, "url": "https://patchwork.libcamera.org/api/people/177/?format=api", "name": "Milan Zamazal", "email": "mzamazal@redhat.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/20411/mbox/", "series": [ { "id": 4419, "url": "https://patchwork.libcamera.org/api/series/4419/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4419", "date": "2024-06-26T07:20:41", "name": "Software ISP refactoring", "version": 1, "mbox": "https://patchwork.libcamera.org/series/4419/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/20411/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/20411/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 968E1BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 26 Jun 2024 07:21:56 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 43D73654C2;\n\tWed, 26 Jun 2024 09:21:56 +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 25483654C9\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 26 Jun 2024 09:21:49 +0200 (CEST)", "from mx-prod-mc-05.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-26-vhaZQbWBN2Whx4iwfCkEdQ-1;\n\tWed, 26 Jun 2024 03:21:46 -0400", "from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4])\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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS\n\tid E293F19560AB for <libcamera-devel@lists.libcamera.org>;\n\tWed, 26 Jun 2024 07:21:45 +0000 (UTC)", "from nuthatch.brq.redhat.com (unknown [10.43.17.159])\n\tby mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id E9DEB3000225; Wed, 26 Jun 2024 07:21:44 +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=\"AxIsdkTZ\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1719386508;\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=Dw+Xm6qnLKyAnt+RsGrdnpTqaaF6AqT57ojMpeKNQnk=;\n\tb=AxIsdkTZ2Sf+tx0pmz0lyMzYV7IJBnbdyERbfzACBfBPT/eUPyZ22ZeB87ilouMKDSRBCI\n\tde5ElU4FNe801rbdPm+pntZ4dXWKxqyEeDt2OC3IzcYySftU0F6BS9s3VeVRAP8HGPOeIr\n\tgqKeXxld/3KhpJGtKzfFcaVz1ohuFEI=", "X-MC-Unique": "vhaZQbWBN2Whx4iwfCkEdQ-1", "From": "Milan Zamazal <mzamazal@redhat.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Milan Zamazal <mzamazal@redhat.com>", "Subject": "[PATCH 19/19] libcamera: software_isp: Update black level only on\n\texposure changes", "Date": "Wed, 26 Jun 2024 09:21:00 +0200", "Message-ID": "<20240626072100.55497-20-mzamazal@redhat.com>", "In-Reply-To": "<20240626072100.55497-1-mzamazal@redhat.com>", "References": "<20240626072100.55497-1-mzamazal@redhat.com>", "MIME-Version": "1.0", "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.4", "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, 11 insertions(+), 2 deletions(-)", "diff": "diff --git a/src/ipa/simple/algorithms/blc.cpp b/src/ipa/simple/algorithms/blc.cpp\nindex 82c89dbb..9025cb3a 100644\n--- a/src/ipa/simple/algorithms/blc.cpp\n+++ b/src/ipa/simple/algorithms/blc.cpp\n@@ -32,11 +32,13 @@ 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 (context.configuration.black.set) {\n+\tif (context.configuration.black.set &&\n+\t frameContext.sensor.exposure == exposure_ &&\n+\t frameContext.sensor.gain == gain_) {\n \t\tcontext.configuration.black.changed = false;\n \t\treturn;\n \t}\n@@ -61,7 +63,10 @@ void BlackLevel::process(IPAContext &context,\n \t\tif (seen >= pixelThreshold) {\n \t\t\tcontext.configuration.black.level =\n \t\t\t\tstatic_cast<double>(i) / SwIspStats::kYHistogramSize;\n+\t\t\tcontext.configuration.black.set = true;\n \t\t\tcontext.configuration.black.changed = true;\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 c8b8d92d..4ddd2c94 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": [ "19/19" ] }