From patchwork Fri Jun 28 10:47:14 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Klug X-Patchwork-Id: 20480 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 ACECBBD87C for ; Fri, 28 Jun 2024 10:49:41 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 57CD063362; Fri, 28 Jun 2024 12:49:41 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="o8ItG90D"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id E4E9663364 for ; Fri, 28 Jun 2024 12:49:38 +0200 (CEST) Received: from ideasonboard.com (unknown [IPv6:2a00:6020:448c:6c00:82ab:924:d918:cd24]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 6D165BEB; Fri, 28 Jun 2024 12:49:14 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1719571754; bh=2zxpM60NvWBn0Cvt+ZszmNAx++DCfCg937M0yauWIwc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=o8ItG90DGwSpP43KYN1fsFIU+2wZASjUN3ifO1F12WXL3peBhq1ffXvhAnaGLUdgn 7n7dyhILGi0OwMgvgmxMQEw7vJx2X63Bk4o/pnaGGSydv6wjEGkL40OO9f1xq9j1h4 vIKz2oYFp4bPAB82mr4vhAg8eL3TUOVVtma5dkqU= From: Stefan Klug To: libcamera-devel@lists.libcamera.org Cc: Stefan Klug Subject: [PATCH v2 21/25] libtuning: lsc: rkisp1: Do not calculate ratios to green Date: Fri, 28 Jun 2024 12:47:14 +0200 Message-ID: <20240628104828.2928109-22-stefan.klug@ideasonboard.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240628104828.2928109-1-stefan.klug@ideasonboard.com> References: <20240628104828.2928109-1-stefan.klug@ideasonboard.com> MIME-Version: 1.0 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" The hardware in the imx8mp treats the lsc tables as absolute factors and not as ratios compared to green. Therefore every channel must calculated independently. Signed-off-by: Stefan Klug --- utils/tuning/libtuning/modules/lsc/rkisp1.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/utils/tuning/libtuning/modules/lsc/rkisp1.py b/utils/tuning/libtuning/modules/lsc/rkisp1.py index 5874f10c936f..a8ba454a7139 100644 --- a/utils/tuning/libtuning/modules/lsc/rkisp1.py +++ b/utils/tuning/libtuning/modules/lsc/rkisp1.py @@ -38,8 +38,11 @@ class LSCRkISP1(LSC): # \todo Should these ratio against the average of both greens or just # each green like we've done here? - cr, _ = self._lsc_single_channel(image.channels[lt.Color.R], image, gr) - cb, _ = self._lsc_single_channel(image.channels[lt.Color.B], image, gb) + + # the lsc tables in the rkisp1 are gains on the corresponding channel, + # not ratios with respect to green, so calculate them independently + cr, _ = self._lsc_single_channel(image.channels[lt.Color.R], image, None) + cb, _ = self._lsc_single_channel(image.channels[lt.Color.B], image, None) return image.color, cr.flatten(), cb.flatten(), cgr.flatten(), cgb.flatten()