From patchwork Wed Oct 9 19:33:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Milan Zamazal X-Patchwork-Id: 21568 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 899C0C32DE for ; Wed, 9 Oct 2024 19:33:32 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5742965369; Wed, 9 Oct 2024 21:33:31 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="TR5ueRr6"; 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 9FD9B618C5 for ; Wed, 9 Oct 2024 21:33:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1728502408; 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=XDqeDS8yIb74lJw1A3ADyOhomSBb20hZQdGmnHktRyQ=; b=TR5ueRr6rQ3cEznu4hSoMZtBZR7+xqUc4lMvTm+O5ffqdUbPYxOABTeCzjzriFB2BCANMS 6aEnNDi9F7aRUzjs935CjmzqooneKD33xX8Pc8nf4Gj1ME9si/0AffCmyqmf1N6KZo45xt ggkVB+sDXgiDeR3O9zfXx/yJkF1niAU= 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-508-B7m49UxvNhG53zPmnKe1HQ-1; Wed, 09 Oct 2024 15:33:25 -0400 X-MC-Unique: B7m49UxvNhG53zPmnKe1HQ-1 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-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 7995B1956080; Wed, 9 Oct 2024 19:33:24 +0000 (UTC) Received: from nuthatch.redhat.com (unknown [10.45.224.78]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 0A56D300018D; Wed, 9 Oct 2024 19:33:22 +0000 (UTC) From: Milan Zamazal To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal , Kieran Bingham Subject: [PATCH v2 0/2] Add contrast control to software ISP Date: Wed, 9 Oct 2024 21:33:15 +0200 Message-ID: <20241009193318.2394762-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 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. Changes in v2: - Rebased on the merged version of software ISP refactoring. - Control initialization moved from toplevel to an algorithm. 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 | 52 +++++++++++++++++++ src/ipa/simple/algorithms/contrast.h | 39 ++++++++++++++ src/ipa/simple/algorithms/lut.cpp | 20 +++++-- src/ipa/simple/algorithms/meson.build | 1 + src/ipa/simple/data/uncalibrated.yaml | 1 + src/ipa/simple/ipa_context.h | 8 +++ src/ipa/simple/soft_simple.cpp | 11 ++-- src/libcamera/pipeline/simple/simple.cpp | 2 +- src/libcamera/software_isp/software_isp.cpp | 8 ++- 11 files changed, 134 insertions(+), 13 deletions(-) create mode 100644 src/ipa/simple/algorithms/contrast.cpp create mode 100644 src/ipa/simple/algorithms/contrast.h