From patchwork Wed Nov 11 16:48:52 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jacopo Mondi X-Patchwork-Id: 28862 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 E857AC335C for ; Wed, 11 Nov 2026 16:49:17 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 45778691E6; Wed, 11 Nov 2026 17:49:13 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="HFsFk+I4"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 7C17B69119 for ; Wed, 11 Nov 2026 17:49:09 +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 31F20981; Wed, 11 Nov 2026 17:46:46 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1794415606; bh=YMmpgDrnSzYXihUVf6O+hvQAMHUiJTEqsICAplGCFdA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=HFsFk+I4LPcC40bMznRZYAEF0QsWqfA2rpAU2khj0Bz+ehmkTar8AMh5ispwR4tcA l/94Vrbef8hyndgT5/5JFVc7tIPFLz9f1TPa3QQD0BYHxj1fVIe3qtsP/b8NZgNWRl hEIyuSR5L95uwBqJWzNvn11rlzOTxwpHS5LjrI8w= From: Jacopo Mondi Date: Wed, 11 Nov 2026 17:48:52 +0100 Subject: [PATCH 2/5] ipa: rpi: vc4: Add Mira016 tuning file MIME-Version: 1.0 Message-Id: <20261111-b4-mira016-v1-2-340bdb923426@ideasonboard.com> References: <20261111-b4-mira016-v1-0-340bdb923426@ideasonboard.com> In-Reply-To: <20261111-b4-mira016-v1-0-340bdb923426@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/ZANAwAKAXI0Bo8WoVY8AcsmYgBq9JyDL/dPwf1UYtHjK/YiZYyfpb680Bg2DwEwJ Qx7y6Tdf7+JAjMEAAEKAB0WIQS1xD1IgJogio9YOMByNAaPFqFWPAUCavScgwAKCRByNAaPFqFW PPUiD/41f4dQMQsnQY61TW/d1yOMb9Xmh7NOVFkJz1xMLTNsbO0SjW67tkOPy821BsnzVLANgO3 2zgehxzoVofJ+hrzv9jC4Zo9pOeuNUYUhe4W5EP19QFFTBAofnZkdr0YB+Bao8enWwxIvF9zrYj n3t+SH2q++lBxYdFtIcvMqryL0uCOd5tAWHHvTy1KV9BaEz+09c+CYcWl3olG2NdJPOlKivK/y5 93odQaeerUTnib8qu9iWl23DzgFtfKI77+SGPwIgI5zJPLyDU30J+pVQNnOV8uBe91y1G5aj1wp A9WQGUNExs1y/XDv6AATQNtYEIKpSsE64KOTIaoWUVezpNJ1fsPPvAT06Lxzolav8xRqSinMSaS v49yE/jklsbbg+5Xa+wI6lRfkvOP5NftpHLVKQDZsUR4CqqwkJlTcyDSulEneybFmECaZ7wWWhg v10gi3VdXQO+3d8S1RnZJVNEpLIJjP+ixUzZGGDYO74M+ZFdcQJERg34bnoXuUPPlKSje1BVQmm hkxcbq+bZExChkHrY5hm7hJodLnJ8zkyNJJRwtJfcqx/9VzXXB6Bfcg/N3015WdRl18v+2DPOYy x451iOYlZbH7Jlm2zNUFkomuta0ch8OSCOd1S7yFt/duQ50Tj1KyUgozDEu1w1QVqLGs+OS87rS 1Ow6dQ27bvBT+gA== 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 ] + } + } + ] +}