From patchwork Wed Sep 4 07:44:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Milan Zamazal X-Patchwork-Id: 21160 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 5AC59C324C for ; Wed, 4 Sep 2024 07:45:14 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 541CC634E5; Wed, 4 Sep 2024 09:45:13 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="RIBSLJmd"; 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 91C2B6341E for ; Wed, 4 Sep 2024 09:45:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1725435909; 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=v5lEqs7ospMxvTMbS+ZycGnIRLFX5ll6A1YPi+8Eu5s=; b=RIBSLJmdIheFuPYOc3xLVgS0fO3MGgsfMcTX4etHwRAEjqlSK7p31fc7ounjV9OKQZBZAf 2DtFOfHuMC+naDRSvXz6ZR8Xi6yAP8uUMMyFe2g7nFl8Bl8E9LTZkxAGSk5KoWsrYZmz5n eX7s/2sVzXk9qkl7GRjDHA8rkWvk1qA= Received: from mx-prod-mc-05.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-127-Obb3BnfrOQWGgvJ_uWa6mg-1; Wed, 04 Sep 2024 03:45:07 -0400 X-MC-Unique: Obb3BnfrOQWGgvJ_uWa6mg-1 Received: from mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.15]) (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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 06EA7195608C for ; Wed, 4 Sep 2024 07:45:07 +0000 (UTC) Received: from nuthatch.redhat.com (unknown [10.45.225.152]) by mx-prod-int-02.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id AA8A0195608A; Wed, 4 Sep 2024 07:45:05 +0000 (UTC) From: Milan Zamazal To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal Subject: [PATCH 0/2] Add contrast control to software ISP Date: Wed, 4 Sep 2024 09:44:57 +0200 Message-ID: <20240904074500.106019-1-mzamazal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 127.0.0.2 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" These are preview patches adding support to software ISP for modifying image processing parameters in runtime. They depend on patches not yet merged and are likely to be modified based on how those patches evolve. They serve as an illustration and proof of concept how the implementation of software ISP controls can be done. The first software ISP image control, implemented here, is contrast. It is simple to implement, doesn’t slow down image processing and can enhance the image easily. Milan Zamazal (2): libcamera: software_isp: Add contrast algorithm libcamera: software_isp: Add contrast control .../internal/software_isp/software_isp.h | 3 +- include/libcamera/ipa/soft.mojom | 2 +- src/ipa/simple/algorithms/contrast.cpp | 45 +++++++++++++++++++ src/ipa/simple/algorithms/contrast.h | 37 +++++++++++++++ src/ipa/simple/algorithms/gamma.cpp | 22 ++++++--- src/ipa/simple/algorithms/meson.build | 1 + src/ipa/simple/data/uncalibrated.yaml | 1 + src/ipa/simple/ipa_context.h | 4 ++ src/ipa/simple/soft_simple.cpp | 13 +++++- src/libcamera/pipeline/simple/simple.cpp | 2 +- src/libcamera/software_isp/software_isp.cpp | 8 +++- 11 files changed, 126 insertions(+), 12 deletions(-) create mode 100644 src/ipa/simple/algorithms/contrast.cpp create mode 100644 src/ipa/simple/algorithms/contrast.h