From patchwork Thu Nov 12 14:20:44 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28879 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 7A415C335B for ; Thu, 12 Nov 2026 14:21:09 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B24B66A7C4; Thu, 12 Nov 2026 15:21:05 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="PUDWcF5x"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 4F3BE691CE for ; Thu, 12 Nov 2026 15:21:00 +0100 (CET) Received: from [192.168.1.182] (93-46-82-201.ip106.fastwebnet.it [93.46.82.201]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 2A2B4D77; Thu, 12 Nov 2026 15:18:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794493116; bh=YMmpgDrnSzYXihUVf6O+hvQAMHUiJTEqsICAplGCFdA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=PUDWcF5xdEN2lWiKcCQPqA3sCfc2Zkur0kjiyu5HV400VzCgh/d+FwQMIY3ZuSfcD BVpoYgZTzql+SKCgoV0ueeedrroqnMwb+6lmkxzpmCQ3RlfQax86aeG9mi7m7JaR5z /LngEnu30eBxuVKsX1V9nVajG2BAqBvFvaJvR69I= From: Jacopo Mondi Date: Thu, 12 Nov 2026 15:20:44 +0100 Subject: [PATCH v2 2/5] ipa: rpi: vc4: Add Mira016 tuning file MIME-Version: 1.0 Message-Id: <20261112-b4-mira016-v2-2-c96443a745ce@ideasonboard.com> References: <20261112-b4-mira016-v2-0-c96443a745ce@ideasonboard.com> In-Reply-To: <20261112-b4-mira016-v2-0-c96443a745ce@ideasonboard.com> To: Philippe Baetens , libcamera-devel@lists.libcamera.org Cc: Jacopo Mondi X-Mailer: b4 0.16.0 X-Developer-Signature: v=1; a=openpgp-sha256; l=4626; i=jacopo.mondi@ideasonboard.com; h=from:subject:message-id; bh=YMmpgDrnSzYXihUVf6O+hvQAMHUiJTEqsICAplGCFdA=; b=owEBbQKS/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9ctKGRoFNPxL+2zCP/Bx6Tzqe+GYgr0cBaAVc zin2uGLTCCJAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavXLSgAKCRByNAaPFqFW PJHID/92Th0MKgm60nGYOiUAAkBcBfPGfcXaeXnZz/96Nnfo0ximfo+N1eeS5hVlRuHRIV2GScl YNumlhlThEaSRIKbYyZdZpaQkfgLMoXYx7z0/7sr7L4ZQb4G9Mct0vYGA8zan302Qmw1eZLzaMD qWHFDrZ8Y0fbIHRjpAVjizuGy00eww/QJzP5Aqi2LvQh0QeUAQZgyAOCVdjekGo+WoPJSl2CViW TKdqv5yEzFsv3YUp8hOgP+urUwQxzT5q3mCWFdoUXe8VmThgt3kiCJINh16tHWAUWrQhzGZMumn mSMtMd2qCHKWGeWU4Kz2KEFw1VgY2PYo/uGpMMt5oovyUm3GMne/akiJ8fJiQ1I2pZpUelIYAq9 TDPy3e/4B7WrUpA2FjlAhK4NDVIv69UOSwqoAuSEIu1kXmNOEzjlt4WtahYteIiovOkOt15D2QK +ibepcrekDjbM7zHFC7iLxYBLZVZUT5dLOccaux/iMEnZj80AYa+7vXq0n1uzcCk9JtYj/3mgz5 /Fzy0z4kRz91HjGT/NdRPNrs48JHqTCIZRXbDGTgaAXXsK51hU3uze4L6ZyocPbm5T8CoEVKCkR 21+4oylncJUoebQ/rTvM9bkDd2Tci3/CoLmFGlvKYJNJKgee5RA+rbG6EpdACOrmihLjQ9nLNst cGvchED6ze4h+cQ== X-Developer-Key: i=jacopo.mondi@ideasonboard.com; a=openpgp; fpr=72392EDC88144A65C701EA9BA5826A2587AD026B 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" Add tuning file for the Mira016 RGB version to the RaspberryPi VC4 IPA. The tuning has been performed by the vendor and is upported from https://github.com/ams-OSRAM/libcamera.git at revision d7d5e17ec961 ("update json files so they are truly mono"). Signed-off-by: Jacopo Mondi --- src/ipa/rpi/vc4/data/meson.build | 1 + src/ipa/rpi/vc4/data/mira016_mono.json | 102 +++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) diff --git a/src/ipa/rpi/vc4/data/meson.build b/src/ipa/rpi/vc4/data/meson.build index a8c5f31422ac..f570686a4d98 100644 --- a/src/ipa/rpi/vc4/data/meson.build +++ b/src/ipa/rpi/vc4/data/meson.build @@ -23,6 +23,7 @@ conf_files = files([ 'imx708_noir.json', 'imx708_wide.json', 'imx708_wide_noir.json', + 'mira016_mono.json', 'mira220.json', 'ov5647.json', 'ov5647_noir.json', diff --git a/src/ipa/rpi/vc4/data/mira016_mono.json b/src/ipa/rpi/vc4/data/mira016_mono.json new file mode 100644 index 000000000000..878a2de7cf92 --- /dev/null +++ b/src/ipa/rpi/vc4/data/mira016_mono.json @@ -0,0 +1,102 @@ +{ + "version": 2.0, + "target": "bcm2835", + "mono": true, + "algorithms": [ + { + "rpi.black_level": + { + "black_level": 2048 + } + }, + + { + "rpi.lux": + { + "reference_shutter_speed": 20316, + "reference_gain": 1.0, + "reference_aperture": 1.0, + "reference_lux": 530, + "reference_Y": 9873 + } + }, + { + "rpi.contrast": + { + "ce_enable": 0, + "gamma_curve": + [ + 0, 0, + 1024, 5040, + 2048, 9338, + 3072, 12356, + 4096, 15312, + 5120, 18051, + 6144, 20790, + 7168, 23193, + 8192, 25744, + 9216, 27942, + 10240, 30035, + 11264, 32005, + 12288, 33975, + 13312, 35815, + 14336, 37600, + 15360, 39168, + 16384, 40642, + 18432, 43379, + 20480, 45749, + 22528, 47753, + 24576, 49621, + 26624, 51253, + 28672, 52698, + 30720, 53796, + 32768, 54876, + 36864, 57012, + 40960, 58656, + 45056, 59954, + 49152, 61183, + 53248, 62355, + 57344, 63419, + 61440, 64476, + 65535, 65535 + ] + } + }, + { + "rpi.sharpen": { } + }, + { + "rpi.agc": + { + "metering_modes": + { + "centre-weighted": { "weights": [ 3, 3, 3, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0 ] }, + "spot": { "weights": [ 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] }, + "matrix": { "weights": [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 ] } + }, + "exposure_modes": + { + "normal": + { + "shutter": [ 100, 10000, 30000, 60000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + }, + "short": + { + "shutter": [ 100, 5000, 10000, 20000, 120000 ], + "gain": [ 1.0, 2.0, 4.0, 6.0, 6.0 ] + } + }, + "constraint_modes": + { + "normal": [ { "bound": "LOWER", "q_lo": 0.98, "q_hi": 1.0, "y_target": [ 0, 0.5, 1000, 0.5 ] } ], + "highlight": [ + { "bound": "LOWER", "q_lo": 0.98, "q_hi": 1.0, "y_target": [ 0, 0.5, 1000, 0.5 ] }, + { "bound": "UPPER", "q_lo": 0.98, "q_hi": 1.0, "y_target": [ 0, 0.8, 1000, 0.8 ] } + ] + }, + "y_target": [ 0, 0.16, 1000, 0.165, 10000, 0.17 ] + } + } + ] +}