[{"id":37367,"web_url":"https://patchwork.libcamera.org/comment/37367/","msgid":"<176579162172.1098171.7331891526082782830@ping.linuxembedded.co.uk>","date":"2025-12-15T09:40:21","subject":"Re: [PATCH v5 6/6] ipa: rkisp1: algorithms: data: enable DPF tuning\n\tfor imx219/ov5640","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Rui Wang (2025-12-14 18:16:46)\n> Enable the RkISP1 denoise pre-filter (DPF) for the imx219 sensor by\n> adding the required DPF tuning block to imx219.yaml.\n> \n> Add DPF tuning config for ov5640 to adapt mode selection\n> \n> Signed-off-by: Rui Wang <rui.wang@ideasonboard.com>\n> ---\n> \n> changelog:\n>  - Update ov5640 dpf config against key name change :\n>   DomainFilter-> filter, NoiseLevelFunction-> nll ,FilterStrength ->strength\n>  \n>  src/ipa/rkisp1/data/imx219.yaml | 38 ++++++++++++++++++++++++\n>  src/ipa/rkisp1/data/ov5640.yaml | 51 +++++++++++++++++++++++++++++++--\n>  2 files changed, 86 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/ipa/rkisp1/data/imx219.yaml b/src/ipa/rkisp1/data/imx219.yaml\n> index 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>  ...\n> diff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml\n> index 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>  ...\n> -- \n> 2.43.0\n>","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 8EC94C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Dec 2025 09:40:28 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 92DCA61960;\n\tMon, 15 Dec 2025 10:40:27 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 78384606D5\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Dec 2025 10:40:25 +0100 (CET)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0D868C6F;\n\tMon, 15 Dec 2025 10:40:20 +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=\"jsuFO3io\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1765791620;\n\tbh=nRh7q0a7MoCbO/7Ovn5IKIbQv2vJUBCYBZ2WnvRWrKc=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=jsuFO3iopYtJOp9srCWi962jNlD4EEMG+urOU4mRO8ue73QyLD5+LhfT3z02GeEV8\n\tN3rPsi0sY1sRZ5Z+BLGwxEvhaS1peuKiSo3aSGRLxEwF/V8rtI1yvt3acPTLAg0RrW\n\te7ZlWtW8n8ippXzL8VzWxg+/UrzTDiFuTahMwn0k=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20251214181646.573675-7-rui.wang@ideasonboard.com>","References":"<20251214181646.573675-1-rui.wang@ideasonboard.com>\n\t<20251214181646.573675-7-rui.wang@ideasonboard.com>","Subject":"Re: [PATCH v5 6/6] ipa: rkisp1: algorithms: data: enable DPF tuning\n\tfor imx219/ov5640","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Rui Wang <rui.wang@ideasonboard.com>","To":"Rui Wang <rui.wang@ideasonboard.com>, libcamera-devel@lists.libcamera.org","Date":"Mon, 15 Dec 2025 09:40:21 +0000","Message-ID":"<176579162172.1098171.7331891526082782830@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>"}},{"id":37395,"web_url":"https://patchwork.libcamera.org/comment/37395/","msgid":"<176582716992.649546.8655162649413109192@rui-Precision-7560.local>","date":"2025-12-15T19:32:49","subject":"Re: [PATCH v5 6/6] ipa: rkisp1: algorithms: data: enable DPF tuning\n\tfor imx219/ov5640","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Rui Wang (2025-12-14 18:16:46)\n> Enable the RkISP1 denoise pre-filter (DPF) for the imx219 sensor by\n> adding the required DPF tuning block to imx219.yaml.\n> \n> Add DPF tuning config for ov5640 to adapt mode selection\n> \n> Signed-off-by: Rui Wang <rui.wang@ideasonboard.com>\n> ---\n> \n> changelog:\n>  - Update ov5640 dpf config against key name change :\n>   DomainFilter-> filter, NoiseLevelFunction-> nll ,FilterStrength ->strength\n>  \n>  src/ipa/rkisp1/data/imx219.yaml | 38 ++++++++++++++++++++++++\n>  src/ipa/rkisp1/data/ov5640.yaml | 51 +++++++++++++++++++++++++++++++--\n>  2 files changed, 86 insertions(+), 3 deletions(-)\n> \n> diff --git a/src/ipa/rkisp1/data/imx219.yaml b/src/ipa/rkisp1/data/imx219.yaml\n> index 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>  ...\n> diff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml\n> index 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>  ...\n> -- \n> 2.43.0\n>","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 16F43C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 15 Dec 2025 19:33:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 30921619AF;\n\tMon, 15 Dec 2025 20:33:04 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B27F8615B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 15 Dec 2025 20:33:02 +0100 (CET)","from pyrite.rasen.tech (unknown [209.216.103.65])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 56CBB4F1;\n\tMon, 15 Dec 2025 20:32:57 +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=\"rDvQbW12\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1765827177;\n\tbh=nRh7q0a7MoCbO/7Ovn5IKIbQv2vJUBCYBZ2WnvRWrKc=;\n\th=In-Reply-To:References:Subject:From:To:Cc:Date:From;\n\tb=rDvQbW12QkNnjNStHPWGnYesocBdC9L+gdfYnvj7ABc45qnBQ0gzVsVBNSq6lu8MH\n\t0aCLcnaF0D7rufyhNoQrHwe/wpZlH2wH+XHA8tBz8025BzzIJdqI7fg4621Zce/2K5\n\tZEOCUb1L/yjDmIi/kcGOCqDxFthvO0ytB3Yn/7x8=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20251214181646.573675-7-rui.wang@ideasonboard.com>","References":"<20251214181646.573675-1-rui.wang@ideasonboard.com>\n\t<20251214181646.573675-7-rui.wang@ideasonboard.com>","Subject":"Re: [PATCH v5 6/6] ipa: rkisp1: algorithms: data: enable DPF tuning\n\tfor imx219/ov5640","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","To":"Rui Wang <rui.wang@ideasonboard.com>, libcamera-devel@lists.libcamera.org","Cc":"Rui Wang <rui.wang@ideasonboard.com>","Date":"Mon, 15 Dec 2025 14:32:49 -0500","Message-ID":"<176582716992.649546.8655162649413109192@rui-Precision-7560.local>","User-Agent":"alot/0.12","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>"}},{"id":37415,"web_url":"https://patchwork.libcamera.org/comment/37415/","msgid":"<ooqnwhy2inb2xvht22lh2kihpmonv6jjsirpby52azg3y3awhy@4gpmezrecxv3>","date":"2025-12-16T17:05:28","subject":"Re: [PATCH v5 6/6] ipa: rkisp1: algorithms: data: enable DPF tuning\n\tfor imx219/ov5640","submitter":{"id":143,"url":"https://patchwork.libcamera.org/api/people/143/","name":"Jacopo Mondi","email":"jacopo.mondi@ideasonboard.com"},"content":"Hi Rui\n\nOn Sun, Dec 14, 2025 at 01:16:46PM -0500, Rui Wang wrote:\n> Enable the RkISP1 denoise pre-filter (DPF) for the imx219 sensor by\n> adding the required DPF tuning block to imx219.yaml.\n>\n> Add DPF tuning config for ov5640 to adapt mode selection\n>\n> Signed-off-by: Rui Wang <rui.wang@ideasonboard.com>\n> ---\n>\n> changelog:\n>  - Update ov5640 dpf config against key name change :\n>   DomainFilter-> filter, NoiseLevelFunction-> nll ,FilterStrength ->strength\n>\n>  src/ipa/rkisp1/data/imx219.yaml | 38 ++++++++++++++++++++++++\n>  src/ipa/rkisp1/data/ov5640.yaml | 51 +++++++++++++++++++++++++++++++--\n>  2 files changed, 86 insertions(+), 3 deletions(-)\n>\n> diff --git a/src/ipa/rkisp1/data/imx219.yaml b/src/ipa/rkisp1/data/imx219.yaml\n> index 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\nI'll wait for a reply on\n[PATCH v4 7/7] ipa: rkisp1: algorithms: data: imx219: enable DPF tuning for IMX219\n\nbefore giving a tag.\n\nBut the patch looks ok already!\n\n\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>  ...\n> diff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml\n> index 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>  ...\n> --\n> 2.43.0\n>","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 995EEBD7D8\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 16 Dec 2025 17:05:32 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5B0FB61A27;\n\tTue, 16 Dec 2025 18:05:32 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A571C6191D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 16 Dec 2025 18:05:31 +0100 (CET)","from ideasonboard.com (93-46-82-201.ip106.fastwebnet.it\n\t[93.46.82.201])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id E1453594;\n\tTue, 16 Dec 2025 18:05:25 +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=\"qwofHByB\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1765904726;\n\tbh=DDfzGLrtHNaYwHekS4BmDbTWgfywUkIkqXjDjJASPMY=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=qwofHByB6rviyCzHRPxhwpAB8Ks6GCOUtgEi6SpEw1gzt0gWHGPp8kseYpw+XzTtX\n\tk3X7L7Ngviu4v6a/uolM3XKnbu9bG1vnyaXC6PVINOyVXc3mBhypsXYHW4i2N9rWjA\n\tOwmjpRCQpXqjASOHB0UYoTQD72I7BhSA2bB9uRuc=","Date":"Tue, 16 Dec 2025 18:05:28 +0100","From":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","To":"Rui Wang <rui.wang@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v5 6/6] ipa: rkisp1: algorithms: data: enable DPF tuning\n\tfor imx219/ov5640","Message-ID":"<ooqnwhy2inb2xvht22lh2kihpmonv6jjsirpby52azg3y3awhy@4gpmezrecxv3>","References":"<20251214181646.573675-1-rui.wang@ideasonboard.com>\n\t<20251214181646.573675-7-rui.wang@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20251214181646.573675-7-rui.wang@ideasonboard.com>","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>"}},{"id":37440,"web_url":"https://patchwork.libcamera.org/comment/37440/","msgid":"<176608922301.753619.17669134223071539171@rui-Precision-7560.local>","date":"2025-12-18T20:20:23","subject":"Re: [PATCH v5 6/6] ipa: rkisp1: algorithms: data: enable DPF tuning\n\tfor imx219/ov5640","submitter":{"id":241,"url":"https://patchwork.libcamera.org/api/people/241/","name":"Rui Wang","email":"rui.wang@ideasonboard.com"},"content":"Quoting Jacopo Mondi (2025-12-16 12:05:28)\n> Hi Rui\n> \n> On Sun, Dec 14, 2025 at 01:16:46PM -0500, Rui Wang wrote:\n> > Enable the RkISP1 denoise pre-filter (DPF) for the imx219 sensor by\n> > adding the required DPF tuning block to imx219.yaml.\n> >\n> > Add DPF tuning config for ov5640 to adapt mode selection\n> >\n> > Signed-off-by: Rui Wang <rui.wang@ideasonboard.com>\n> > ---\n> >\n> > changelog:\n> >  - Update ov5640 dpf config against key name change :\n> >   DomainFilter-> filter, NoiseLevelFunction-> nll ,FilterStrength ->strength\n> >\n> >  src/ipa/rkisp1/data/imx219.yaml | 38 ++++++++++++++++++++++++\n> >  src/ipa/rkisp1/data/ov5640.yaml | 51 +++++++++++++++++++++++++++++++--\n> >  2 files changed, 86 insertions(+), 3 deletions(-)\n> >\n> > diff --git a/src/ipa/rkisp1/data/imx219.yaml b/src/ipa/rkisp1/data/imx219.yaml\n> > index 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> \n> I'll wait for a reply on\n> [PATCH v4 7/7] ipa: rkisp1: algorithms: data: imx219: enable DPF tuning for IMX219\n> \n> before giving a tag.\n> \n> But the patch looks ok already!\n>\n\nSorry Jacobo,\nmissing your reply on v4 7/7.\n\nQuoting from v4 7/7\n-----------------------------------------------------------------\n> > This is what confuses me about Dpf.\n> >\n> > We don't have an \"enable DPF\" control but rather only \"use this DPF\n> > mode\". What 'mode' does this outer configuration represents ?\n> >\n> this modes map to reductionmodecontrol :\n> NoiseReductionModeMinimal/NoiseReductionModeHighQuality\n> /NoiseReductionModeFast/NoiseReductionModeZSL\n> each mode would own its specific config in tuning file.\n> and NoiseReductionModeOff equal to disable DPF\n\nThis was not my question, sorry if it wasn't clear\n\nThe tuning file layout is the following one\n\n  - Dpf:\n      filter:\n      nll:\n      strength:\n      modes:\n        - type: \"minimal\"\n          filter:\n          nll:\n          strength:\n        - type: \"highquality\"\n          filter:\n          nll:\n          strength:\n        - type: \"fast\"\n          filter:\n          nll:\n          strength:\n        - type: \"zsl\"\n          filter:\n          nll:\n          strength:\n\nEach entry in \"modes\" is .. a mode, with it's own configuration.\nBUT: what do the outer configuration refers to ? What is its purpose ?\nIt is not associated to any \"mode\", how can user select it ?\n\n  - Dpf:\n      filter:           \\\n      nll:              | -> This one ??\n      strength:         /\n      modes:\n      - type: ...\n\n----------------------------------------------------\n The is legacy config of Dpf configuaration , in the current implementation ,\n this configs are only help to initiate  struct :config_ strengthConfig_.\n in the function :\n\nint Dpf::parseConfig(const YamlObject &tuningData)\n{\n\t/* Parse base config. */\n\tint ret = parseSingleConfig(tuningData, config_, strengthConfig_);\n\tif (ret)\n\t\treturn ret;\n\n\t/* Parse modes. */\n\treturn parseModes(tuningData);\n}\n\nAs default configs , I will use it for controls initiate value for the next follow story:\nauto/manual mode enable.\n----------------------------------------------------------------------------------------\n\nQuoting from v4 7/7\n\nAlso, as I'm not sure if my reply to [v4 2/7] was clear, for each\n\"mode\" in \"modes\" you should register a value for\ncontrols::draft::NoiseReductionMode (*) and use can select which of\nthose to use.\n\n  - Dpf:\n      modes:\n        - type: \"minimal\"\n        - type: \"highquality\"\n\nMeans you should register:\n\n        { &controls::draft::NoiseReductionMode,\n          ControlInfo(NoiseReductionModeMinimal,\n                      NoiseReductionModeHighQuality)) };\n\nso that applications can only select between modes described in the\ntuning file.\n\n\n\nyes , as current situation , only reduction mode's config can be seletable\n---------------------------------------------------------------------------\n\n> \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> >  ...\n> > diff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml\n> > index 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> >  ...\n> > --\n> > 2.43.0\n> >","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 DAF14BD7D8\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 18 Dec 2025 20:20:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DBFC161F5B;\n\tThu, 18 Dec 2025 21:20:37 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 4EF7C61F35\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 18 Dec 2025 21:20:36 +0100 (CET)","from pyrite.rasen.tech (unknown [209.216.103.65])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id AD2721189;\n\tThu, 18 Dec 2025 21:20:28 +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=\"lr8fpHXQ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1766089228;\n\tbh=0wXnOpaTscZwTM2s/VhV7IL7FTlo3aDtkzEY6F+1EFM=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=lr8fpHXQ3Pv+gdHECcyncmWgo8QolMaof40cUKHecdbFRl1wdfG+zhaST/OS48eml\n\tLtdtnvoDUEfqNy1CdVFQcqv8CvaYmQAmVGHvk1+iJwJqUukW0UUrdjNSvYffIUc+qX\n\tSnMtILlYdf+b/fHOkXnvAB4ADxGNw8+XcZfMYY2s=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<ooqnwhy2inb2xvht22lh2kihpmonv6jjsirpby52azg3y3awhy@4gpmezrecxv3>","References":"<20251214181646.573675-1-rui.wang@ideasonboard.com>\n\t<20251214181646.573675-7-rui.wang@ideasonboard.com>\n\t<ooqnwhy2inb2xvht22lh2kihpmonv6jjsirpby52azg3y3awhy@4gpmezrecxv3>","Subject":"Re: [PATCH v5 6/6] ipa: rkisp1: algorithms: data: enable DPF tuning\n\tfor imx219/ov5640","From":"Rui Wang <rui.wang@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","To":"Jacopo Mondi <jacopo.mondi@ideasonboard.com>","Date":"Thu, 18 Dec 2025 15:20:23 -0500","Message-ID":"<176608922301.753619.17669134223071539171@rui-Precision-7560.local>","User-Agent":"alot/0.12","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>"}}]