From patchwork Tue Apr 30 17:34:25 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Milan Zamazal X-Patchwork-Id: 19968 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 EFA7BC3220 for ; Tue, 30 Apr 2024 17:34:49 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id E07EA63418; Tue, 30 Apr 2024 19:34:48 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="NnPBYZzU"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 8388C633F3 for ; Tue, 30 Apr 2024 19:34:47 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1714498486; 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; bh=xaDNMaSBralbm0frGHkJrrtbLKjz4aZITnFDR3UjXGU=; b=NnPBYZzUusUkpcjj6pgv0jRZeyaANLoRTKHl2ugI0fyZFk7aw3rk22eEAFqN5XfNb6f5D/ Oqm/3sh1YUoUonEHl0esZf0bVtVN1E8dQufFijDvQ5Mu5B+cpX3cP595IMtHyq4NTFUWw3 c5NXq7sns3PK2H0e12w3oFfBMjf0Iro= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-55-YiflvTovMA-DEx2nU_2X1g-1; Tue, 30 Apr 2024 13:34:44 -0400 X-MC-Unique: YiflvTovMA-DEx2nU_2X1g-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (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 mimecast-mx02.redhat.com (Postfix) with ESMTPS id B07F5812C57; Tue, 30 Apr 2024 17:34:43 +0000 (UTC) Received: from nuthatch.redhat.com (unknown [10.45.224.26]) by smtp.corp.redhat.com (Postfix) with ESMTP id A72C3EC680; Tue, 30 Apr 2024 17:34:42 +0000 (UTC) From: Milan Zamazal To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal , Laurent Pinchart Subject: [PATCH v2 0/5] Software ISP levels cleanup Date: Tue, 30 Apr 2024 19:34:25 +0200 Message-ID: <20240430173430.200392-1-mzamazal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.11.54.5 X-Mimecast-Spam-Score: 0 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" This is a cleanup of black level and color gain handling in software ISP. It fixes omission of black level subtraction in white balance computation and moves color lookup tables computations out of debayering. The latter also serves as a preparation for bringing software ISP algorithms closer to common libcamera algorithm handling, in future patches. Changes in v2: - stdint.h include moved from black_level.cpp to black_level.h. - Removed meaningless multiplication in black level subtraction. - Removed local variable scoping block. - Added a comment about subtracting black level for auto white balance. - A code snippet related to black level subtraction moved to the right patch. - Dropped the patch moving TODO #13 to a source code comment. - Added a patch to use float rather than uint8_t gains in color lookup tables passed to debayering. Milan Zamazal (5): libcamera: software_isp: Use a specific integer type for black level libcamera: software_isp: Honor black level in AWB libcamera: software_isp: Move color mappings out of debayering libcamera: software_isp: Remove DebayerParams::kGain10 libcamera: software_isp: Pass color lookup tables as floats .../internal/software_isp/debayer_params.h | 19 +++-- src/ipa/simple/black_level.cpp | 2 +- src/ipa/simple/black_level.h | 5 +- src/ipa/simple/soft_simple.cpp | 76 ++++++++++++++----- src/libcamera/software_isp/TODO | 13 ---- src/libcamera/software_isp/debayer.cpp | 28 +++---- src/libcamera/software_isp/debayer_cpu.cpp | 53 +++++-------- src/libcamera/software_isp/debayer_cpu.h | 13 ++-- src/libcamera/software_isp/software_isp.cpp | 4 +- 9 files changed, 109 insertions(+), 104 deletions(-)