From patchwork Wed Nov 20 18:00:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Milan Zamazal X-Patchwork-Id: 22043 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id E9806C32F9 for ; Wed, 20 Nov 2024 18:01:22 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9740B65F84; Wed, 20 Nov 2024 19:01:22 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="NWjMKF2K"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 7E5C465F83 for ; Wed, 20 Nov 2024 19:01:19 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1732125678; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QNJCpZOST9RzzDb5ZifNelAOmIVM9PCUEa8YDg/JSuU=; b=NWjMKF2KrX2ordVcKo4C9VctUtJplv4/xPM4WnE20IDXmGOU/EozR3bHGH6RfuzmThrylF vvDQGezNivHuL5FJPTZSS+Qlqftsc+4UTpVdBgf/MQGL5TgavPgSvUp2coLhj+l+Ve2BJN Sj0Ljcx/PnyJMWwgPbok59Bbcawt9HU= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-502-kcur5FVrNuKa4XB64vb0bA-1; Wed, 20 Nov 2024 13:01:16 -0500 X-MC-Unique: kcur5FVrNuKa4XB64vb0bA-1 X-Mimecast-MFC-AGG-ID: kcur5FVrNuKa4XB64vb0bA Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id E56BA1955D4D for ; Wed, 20 Nov 2024 18:01:15 +0000 (UTC) Received: from nuthatch.redhat.com (unknown [10.45.224.6]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id B1C3930000DF; Wed, 20 Nov 2024 18:01:13 +0000 (UTC) From: Milan Zamazal To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal Subject: [PATCH 2/9] libcamera: software_isp: Store color temperature to metadata Date: Wed, 20 Nov 2024 19:00:57 +0100 Message-ID: <20241120180104.1221846-3-mzamazal@redhat.com> In-Reply-To: <20241120180104.1221846-1-mzamazal@redhat.com> References: <20241120180104.1221846-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-MFC-PROC-ID: BkjsDlVzAaUXOI8Frj-ZfObucDb688d6QiAUvRr_dyU_1732125676 X-Mimecast-Originator: redhat.com X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Image color temperature is a piece of information that should be reported in metadata, let's put it there. Metadata is currently not reported in simple pipeline but we should make at least newly added information ready to be reported. Signed-off-by: Milan Zamazal --- src/ipa/simple/algorithms/awb.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp index db384c3fa..eef8277fc 100644 --- a/src/ipa/simple/algorithms/awb.cpp +++ b/src/ipa/simple/algorithms/awb.cpp @@ -12,6 +12,8 @@ #include +#include + #include "libipa/colours.h" #include "simple/ipa_context.h" @@ -34,7 +36,7 @@ void Awb::process(IPAContext &context, [[maybe_unused]] const uint32_t frame, [[maybe_unused]] IPAFrameContext &frameContext, const SwIspStats *stats, - [[maybe_unused]] ControlList &metadata) + ControlList &metadata) { const SwIspStats::Histogram &histogram = stats->yHistogram; const uint8_t blackLevel = context.activeState.blc.level; @@ -60,8 +62,10 @@ void Awb::process(IPAContext &context, gains.blue = sumB <= sumG / 4 ? 4.0 : static_cast(sumG) / sumB; /* Green gain is fixed to 1.0 */ - context.activeState.awb.temperatureK = + uint32_t temperature = estimateCCT(1 / gains.red, 1 / gains.green, 1 / gains.blue); + context.activeState.awb.temperatureK = temperature; + metadata.set(controls::ColourTemperature, temperature); LOG(IPASoftAwb, Debug) << "gain R/B: " << gains.red << "/" << gains.blue