{"id":25762,"url":"https://patchwork.libcamera.org/api/1.1/patches/25762/?format=json","web_url":"https://patchwork.libcamera.org/patch/25762/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260113174642.1185403-7-rui.wang@ideasonboard.com>","date":"2026-01-13T17:46:42","name":"[v7,6/6] ipa: rkisp1: algorithms: data: enable DPF tuning for sensors","commit_ref":null,"pull_url":null,"state":"deferred","archived":false,"hash":"13ceae3009601f0a5e1bd2fe84ec3ac99883cd3f","submitter":{"id":241,"url":"https://patchwork.libcamera.org/api/1.1/people/241/?format=json","name":"Rui Wang","email":"rui.wang@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/25762/mbox/","series":[{"id":5704,"url":"https://patchwork.libcamera.org/api/1.1/series/5704/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5704","date":"2026-01-13T17:46:36","name":"refactor DPF parsing and initialization","version":7,"mbox":"https://patchwork.libcamera.org/series/5704/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/25762/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/25762/checks/","tags":{},"headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B0058BE08B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 13 Jan 2026 17:47:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4ADFB61FBC;\n\tTue, 13 Jan 2026 18:47:59 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BEEA161FA3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 13 Jan 2026 18:47:57 +0100 (CET)","from rui-Precision-7560.local (unknown [209.216.103.65])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4E73C73B;\n\tTue, 13 Jan 2026 18:47:31 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"JcAvCRWI\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1768326451;\n\tbh=D4L91c2gNrpjnqiVdgPXVgA/bQCStpyuOFODV/DGLio=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=JcAvCRWIBfeHRWHTNW9PwAX1qN7cPrRlRfwyLhqMogYdnwWv4a8VAuw/HmzcUr6+Q\n\tlIlLD12PRQzjybdcwwKyk2mumdAuUe5gNNP/KP8Wb2+s/FpwXuYh8X9wZ6PNSZLrPB\n\tvzvTOLLYWNPdUDZgQmJ86ccxOgPEm+NONxGQ6TLw=","From":"Rui Wang <rui.wang@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Rui Wang <rui.wang@ideasonboard.com>","Subject":"[PATCH v7 6/6] ipa: rkisp1: algorithms: data: enable DPF tuning for\n\tsensors","Date":"Tue, 13 Jan 2026 12:46:42 -0500","Message-ID":"<20260113174642.1185403-7-rui.wang@ideasonboard.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20260113174642.1185403-1-rui.wang@ideasonboard.com>","References":"<20260113174642.1185403-1-rui.wang@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"Enable the RkISP1 denoise pre-filter (DPF) for the imx219/ov5647\nov5640 sensor by adding the required DPF tuning block.\n\nAdd DPF tuning config for ov5640 to adapt mode selection\n\nSigned-off-by: Rui Wang <rui.wang@ideasonboard.com>\n\n---\nchangelog since v5:   No change\n\nchangelog since v6:\n add ov5647 as strong noise sensor for verification\n---\n src/ipa/rkisp1/data/imx219.yaml | 38 ++++++++++++++++++++++++\n src/ipa/rkisp1/data/meson.build |  1 +\n src/ipa/rkisp1/data/ov5640.yaml | 51 +++++++++++++++++++++++++++++++--\n src/ipa/rkisp1/data/ov5647.yaml | 46 +++++++++++++++++++++++++++++\n 4 files changed, 133 insertions(+), 3 deletions(-)\n create mode 100644 src/ipa/rkisp1/data/ov5647.yaml","diff":"diff --git a/src/ipa/rkisp1/data/imx219.yaml b/src/ipa/rkisp1/data/imx219.yaml\nindex 0d99cb52..d6068ada 100644\n--- a/src/ipa/rkisp1/data/imx219.yaml\n+++ b/src/ipa/rkisp1/data/imx219.yaml\n@@ -111,4 +111,42 @@ algorithms:\n                1438, 1226, 1059, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1025, 1054, 1185,\n                1326, 1334, 1334,\n              ]\n+  - Dpf:\n+      filter:\n+        g:  [ 18, 13,  9,  5,  3,  1 ]\n+        rb: [ 18, 15, 12,  8,  5,  2 ]\n+      nll:\n+        coeff: [\n+          0,  14,  28,  42,  58,  76,  96, 120,\n+          148, 180, 216, 256, 300, 348, 400, 456,\n+          520\n+        ]\n+        scale-mode: \"linear\"\n+      strength:\n+        r: 80\n+        g: 80\n+        b: 80\n+      modes:\n+        - type: \"minimal\"\n+          filter:\n+            g:  [ 14, 10,  7,  4,  2,  1 ]\n+            rb: [ 14, 11,  8,  4,  2,  1 ]\n+          nll:\n+            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]\n+            scale-mode: \"linear\"\n+          strength:\n+            r: 60\n+            g: 60\n+            b: 60\n+        - type: \"highquality\"\n+          filter:\n+            g:  [ 22, 18, 13,  8,  5,  2 ]\n+            rb: [ 20, 18, 16, 11,  7,  3 ]\n+          nll:\n+            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]\n+            scale-mode: \"linear\"\n+          strength:\n+            r: 130\n+            g: 130\n+            b: 130\n ...\ndiff --git a/src/ipa/rkisp1/data/meson.build b/src/ipa/rkisp1/data/meson.build\nindex 1e3522b2..6388a8be 100644\n--- a/src/ipa/rkisp1/data/meson.build\n+++ b/src/ipa/rkisp1/data/meson.build\n@@ -6,6 +6,7 @@ conf_files = files([\n     'ov2685.yaml',\n     'ov4689.yaml',\n     'ov5640.yaml',\n+    'ov5647.yaml',\n     'ov5695.yaml',\n     'ov8858.yaml',\n     'uncalibrated.yaml',\ndiff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml\nindex 4b21d412..f36a45b5 100644\n--- a/src/ipa/rkisp1/data/ov5640.yaml\n+++ b/src/ipa/rkisp1/data/ov5640.yaml\n@@ -232,19 +232,64 @@ algorithms:\n             green: 2\n             red-blue: 2\n   - Dpf:\n-      DomainFilter:\n+      filter:\n         g: [ 16, 16, 16, 16, 16, 16 ]\n         rb: [ 16, 16, 16, 16, 16, 16 ]\n-      NoiseLevelFunction:\n+      nll:\n         coeff: [\n           1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,\n           1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,\n           1023\n         ]\n         scale-mode: \"linear\"\n-      FilterStrength:\n+      strength:\n         r: 64\n         g: 64\n         b: 64\n+      modes:\n+      - type: \"minimal\"\n+        filter:\n+          g:  [ 14, 10,  7,  4,  2,  1 ]\n+          rb: [ 14, 11,  8,  4,  2,  1 ]\n+        nll:\n+          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]\n+          scale-mode: \"linear\"\n+        strength:\n+          r: 60\n+          g: 60\n+          b: 60\n+      - type: \"highquality\"\n+        filter:\n+          g:  [ 22, 18, 13,  8,  5,  2 ]\n+          rb: [ 20, 18, 16, 11,  7,  3 ]\n+        nll:\n+          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]\n+          scale-mode: \"linear\"\n+        strength:\n+          r: 130\n+          g: 130\n+          b: 130\n+      - type: \"fast\"\n+        filter:\n+          g:  [ 16, 12,  9,  5,  3,  1 ]\n+          rb: [ 16, 13, 10,  6,  4,  2 ]\n+        nll:\n+          coeff: [ 0, 16, 32, 48, 66, 86, 108, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528 ]\n+          scale-mode: \"linear\"\n+        strength:\n+          r: 90\n+          g: 90\n+          b: 90\n+      - type: \"zsl\"\n+        filter:\n+          g:  [ 18, 14, 10,  6,  3,  1 ]\n+          rb: [ 18, 16, 13,  9,  5,  3 ]\n+        nll:\n+          coeff: [ 0, 20, 40, 60, 82, 106, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528, 592 ]\n+          scale-mode: \"linear\"\n+        strength:\n+          r: 110\n+          g: 110\n+          b: 110\n   - Filter:\n ...\ndiff --git a/src/ipa/rkisp1/data/ov5647.yaml b/src/ipa/rkisp1/data/ov5647.yaml\nnew file mode 100644\nindex 00000000..dfdbae14\n--- /dev/null\n+++ b/src/ipa/rkisp1/data/ov5647.yaml\n@@ -0,0 +1,46 @@\n+# SPDX-License-Identifier: CC0-1.0\n+%YAML 1.1\n+---\n+version: 1\n+algorithms:\n+  - Agc:\n+  - Awb:\n+  - Dpf:\n+      filter:\n+        g:  [ 18, 13,  9,  5,  3,  1 ]\n+        rb: [ 18, 15, 12,  8,  5,  2 ]\n+      nll:\n+        coeff: [\n+          0,  14,  28,  42,  58,  76,  96, 120,\n+          148, 180, 216, 256, 300, 348, 400, 456,\n+          520\n+        ]\n+        scale-mode: \"linear\"\n+      strength:\n+        r: 80\n+        g: 80\n+        b: 80\n+      modes:\n+        - type: \"minimal\"\n+          filter:\n+            g:  [ 14, 10,  7,  4,  2,  1 ]\n+            rb: [ 14, 11,  8,  4,  2,  1 ]\n+          nll:\n+            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]\n+            scale-mode: \"linear\"\n+          strength:\n+            r: 60\n+            g: 60\n+            b: 60\n+        - type: \"highquality\"\n+          filter:\n+            g:  [ 22, 18, 13,  8,  5,  2 ]\n+            rb: [ 20, 18, 16, 11,  7,  3 ]\n+          nll:\n+            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]\n+            scale-mode: \"linear\"\n+          strength:\n+            r: 1\n+            g: 1\n+            b: 1\n+...\n","prefixes":["v7","6/6"]}