[v5,6/6] ipa: rkisp1: algorithms: data: enable DPF tuning for imx219/ov5640
diff mbox series

Message ID 20251214181646.573675-7-rui.wang@ideasonboard.com
State New
Headers show
Series
  • refactor DPF parsing and initialization
Related show

Commit Message

Rui Wang Dec. 14, 2025, 6:16 p.m. UTC
Enable the RkISP1 denoise pre-filter (DPF) for the imx219 sensor by
adding the required DPF tuning block to imx219.yaml.

Add DPF tuning config for ov5640 to adapt mode selection

Signed-off-by: Rui Wang <rui.wang@ideasonboard.com>
---

changelog:
 - Update ov5640 dpf config against key name change :
  DomainFilter-> filter, NoiseLevelFunction-> nll ,FilterStrength ->strength
 
 src/ipa/rkisp1/data/imx219.yaml | 38 ++++++++++++++++++++++++
 src/ipa/rkisp1/data/ov5640.yaml | 51 +++++++++++++++++++++++++++++++--
 2 files changed, 86 insertions(+), 3 deletions(-)

Comments

Kieran Bingham Dec. 15, 2025, 9:40 a.m. UTC | #1
Quoting Rui Wang (2025-12-14 18:16:46)
> Enable the RkISP1 denoise pre-filter (DPF) for the imx219 sensor by
> adding the required DPF tuning block to imx219.yaml.
> 
> Add DPF tuning config for ov5640 to adapt mode selection
> 
> Signed-off-by: Rui Wang <rui.wang@ideasonboard.com>
> ---
> 
> changelog:
>  - Update ov5640 dpf config against key name change :
>   DomainFilter-> filter, NoiseLevelFunction-> nll ,FilterStrength ->strength
>  
>  src/ipa/rkisp1/data/imx219.yaml | 38 ++++++++++++++++++++++++
>  src/ipa/rkisp1/data/ov5640.yaml | 51 +++++++++++++++++++++++++++++++--
>  2 files changed, 86 insertions(+), 3 deletions(-)
> 
> diff --git a/src/ipa/rkisp1/data/imx219.yaml b/src/ipa/rkisp1/data/imx219.yaml
> index 0d99cb52..d6068ada 100644
> --- a/src/ipa/rkisp1/data/imx219.yaml
> +++ b/src/ipa/rkisp1/data/imx219.yaml
> @@ -111,4 +111,42 @@ algorithms:
>                 1438, 1226, 1059, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1025, 1054, 1185,
>                 1326, 1334, 1334,
>               ]
> +  - Dpf:
> +      filter:
> +        g:  [ 18, 13,  9,  5,  3,  1 ]
> +        rb: [ 18, 15, 12,  8,  5,  2 ]
> +      nll:
> +        coeff: [
> +          0,  14,  28,  42,  58,  76,  96, 120,
> +          148, 180, 216, 256, 300, 348, 400, 456,
> +          520
> +        ]
> +        scale-mode: "linear"
> +      strength:
> +        r: 80
> +        g: 80
> +        b: 80
> +      modes:
> +        - type: "minimal"
> +          filter:
> +            g:  [ 14, 10,  7,  4,  2,  1 ]
> +            rb: [ 14, 11,  8,  4,  2,  1 ]
> +          nll:
> +            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +            scale-mode: "linear"
> +          strength:
> +            r: 60
> +            g: 60
> +            b: 60
> +        - type: "highquality"
> +          filter:
> +            g:  [ 22, 18, 13,  8,  5,  2 ]
> +            rb: [ 20, 18, 16, 11,  7,  3 ]
> +          nll:
> +            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +            scale-mode: "linear"
> +          strength:
> +            r: 130
> +            g: 130
> +            b: 130
>  ...
> diff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml
> index 4b21d412..f36a45b5 100644
> --- a/src/ipa/rkisp1/data/ov5640.yaml
> +++ b/src/ipa/rkisp1/data/ov5640.yaml
> @@ -232,19 +232,64 @@ algorithms:
>              green: 2
>              red-blue: 2
>    - Dpf:
> -      DomainFilter:
> +      filter:
>          g: [ 16, 16, 16, 16, 16, 16 ]
>          rb: [ 16, 16, 16, 16, 16, 16 ]
> -      NoiseLevelFunction:
> +      nll:
>          coeff: [
>            1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
>            1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
>            1023
>          ]
>          scale-mode: "linear"
> -      FilterStrength:
> +      strength:
>          r: 64
>          g: 64
>          b: 64
> +      modes:
> +      - type: "minimal"
> +        filter:
> +          g:  [ 14, 10,  7,  4,  2,  1 ]
> +          rb: [ 14, 11,  8,  4,  2,  1 ]
> +        nll:
> +          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 60
> +          g: 60
> +          b: 60
> +      - type: "highquality"
> +        filter:
> +          g:  [ 22, 18, 13,  8,  5,  2 ]
> +          rb: [ 20, 18, 16, 11,  7,  3 ]
> +        nll:
> +          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 130
> +          g: 130
> +          b: 130
> +      - type: "fast"
> +        filter:
> +          g:  [ 16, 12,  9,  5,  3,  1 ]
> +          rb: [ 16, 13, 10,  6,  4,  2 ]
> +        nll:
> +          coeff: [ 0, 16, 32, 48, 66, 86, 108, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 90
> +          g: 90
> +          b: 90
> +      - type: "zsl"
> +        filter:
> +          g:  [ 18, 14, 10,  6,  3,  1 ]
> +          rb: [ 18, 16, 13,  9,  5,  3 ]
> +        nll:
> +          coeff: [ 0, 20, 40, 60, 82, 106, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528, 592 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 110
> +          g: 110
> +          b: 110
>    - Filter:
>  ...
> -- 
> 2.43.0
>
Kieran Bingham Dec. 15, 2025, 7:32 p.m. UTC | #2
Quoting Rui Wang (2025-12-14 18:16:46)
> Enable the RkISP1 denoise pre-filter (DPF) for the imx219 sensor by
> adding the required DPF tuning block to imx219.yaml.
> 
> Add DPF tuning config for ov5640 to adapt mode selection
> 
> Signed-off-by: Rui Wang <rui.wang@ideasonboard.com>
> ---
> 
> changelog:
>  - Update ov5640 dpf config against key name change :
>   DomainFilter-> filter, NoiseLevelFunction-> nll ,FilterStrength ->strength
>  
>  src/ipa/rkisp1/data/imx219.yaml | 38 ++++++++++++++++++++++++
>  src/ipa/rkisp1/data/ov5640.yaml | 51 +++++++++++++++++++++++++++++++--
>  2 files changed, 86 insertions(+), 3 deletions(-)
> 
> diff --git a/src/ipa/rkisp1/data/imx219.yaml b/src/ipa/rkisp1/data/imx219.yaml
> index 0d99cb52..d6068ada 100644
> --- a/src/ipa/rkisp1/data/imx219.yaml
> +++ b/src/ipa/rkisp1/data/imx219.yaml
> @@ -111,4 +111,42 @@ algorithms:
>                 1438, 1226, 1059, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1025, 1054, 1185,
>                 1326, 1334, 1334,
>               ]
> +  - Dpf:
> +      filter:
> +        g:  [ 18, 13,  9,  5,  3,  1 ]
> +        rb: [ 18, 15, 12,  8,  5,  2 ]
> +      nll:
> +        coeff: [
> +          0,  14,  28,  42,  58,  76,  96, 120,
> +          148, 180, 216, 256, 300, 348, 400, 456,
> +          520
> +        ]
> +        scale-mode: "linear"
> +      strength:
> +        r: 80
> +        g: 80
> +        b: 80
> +      modes:
> +        - type: "minimal"
> +          filter:
> +            g:  [ 14, 10,  7,  4,  2,  1 ]
> +            rb: [ 14, 11,  8,  4,  2,  1 ]
> +          nll:
> +            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +            scale-mode: "linear"
> +          strength:
> +            r: 60
> +            g: 60
> +            b: 60
> +        - type: "highquality"
> +          filter:
> +            g:  [ 22, 18, 13,  8,  5,  2 ]
> +            rb: [ 20, 18, 16, 11,  7,  3 ]
> +          nll:
> +            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +            scale-mode: "linear"
> +          strength:
> +            r: 130
> +            g: 130
> +            b: 130
>  ...
> diff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml
> index 4b21d412..f36a45b5 100644
> --- a/src/ipa/rkisp1/data/ov5640.yaml
> +++ b/src/ipa/rkisp1/data/ov5640.yaml
> @@ -232,19 +232,64 @@ algorithms:
>              green: 2
>              red-blue: 2
>    - Dpf:
> -      DomainFilter:
> +      filter:
>          g: [ 16, 16, 16, 16, 16, 16 ]
>          rb: [ 16, 16, 16, 16, 16, 16 ]
> -      NoiseLevelFunction:
> +      nll:
>          coeff: [
>            1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
>            1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
>            1023
>          ]
>          scale-mode: "linear"
> -      FilterStrength:
> +      strength:
>          r: 64
>          g: 64
>          b: 64
> +      modes:
> +      - type: "minimal"
> +        filter:
> +          g:  [ 14, 10,  7,  4,  2,  1 ]
> +          rb: [ 14, 11,  8,  4,  2,  1 ]
> +        nll:
> +          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 60
> +          g: 60
> +          b: 60
> +      - type: "highquality"
> +        filter:
> +          g:  [ 22, 18, 13,  8,  5,  2 ]
> +          rb: [ 20, 18, 16, 11,  7,  3 ]
> +        nll:
> +          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 130
> +          g: 130
> +          b: 130
> +      - type: "fast"
> +        filter:
> +          g:  [ 16, 12,  9,  5,  3,  1 ]
> +          rb: [ 16, 13, 10,  6,  4,  2 ]
> +        nll:
> +          coeff: [ 0, 16, 32, 48, 66, 86, 108, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 90
> +          g: 90
> +          b: 90
> +      - type: "zsl"
> +        filter:
> +          g:  [ 18, 14, 10,  6,  3,  1 ]
> +          rb: [ 18, 16, 13,  9,  5,  3 ]
> +        nll:
> +          coeff: [ 0, 20, 40, 60, 82, 106, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528, 592 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 110
> +          g: 110
> +          b: 110
>    - Filter:
>  ...
> -- 
> 2.43.0
>
Jacopo Mondi Dec. 16, 2025, 5:05 p.m. UTC | #3
Hi Rui

On Sun, Dec 14, 2025 at 01:16:46PM -0500, Rui Wang wrote:
> Enable the RkISP1 denoise pre-filter (DPF) for the imx219 sensor by
> adding the required DPF tuning block to imx219.yaml.
>
> Add DPF tuning config for ov5640 to adapt mode selection
>
> Signed-off-by: Rui Wang <rui.wang@ideasonboard.com>
> ---
>
> changelog:
>  - Update ov5640 dpf config against key name change :
>   DomainFilter-> filter, NoiseLevelFunction-> nll ,FilterStrength ->strength
>
>  src/ipa/rkisp1/data/imx219.yaml | 38 ++++++++++++++++++++++++
>  src/ipa/rkisp1/data/ov5640.yaml | 51 +++++++++++++++++++++++++++++++--
>  2 files changed, 86 insertions(+), 3 deletions(-)
>
> diff --git a/src/ipa/rkisp1/data/imx219.yaml b/src/ipa/rkisp1/data/imx219.yaml
> index 0d99cb52..d6068ada 100644
> --- a/src/ipa/rkisp1/data/imx219.yaml
> +++ b/src/ipa/rkisp1/data/imx219.yaml
> @@ -111,4 +111,42 @@ algorithms:
>                 1438, 1226, 1059, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1025, 1054, 1185,
>                 1326, 1334, 1334,
>               ]
> +  - Dpf:
> +      filter:
> +        g:  [ 18, 13,  9,  5,  3,  1 ]
> +        rb: [ 18, 15, 12,  8,  5,  2 ]
> +      nll:
> +        coeff: [
> +          0,  14,  28,  42,  58,  76,  96, 120,
> +          148, 180, 216, 256, 300, 348, 400, 456,
> +          520
> +        ]
> +        scale-mode: "linear"

I'll wait for a reply on
[PATCH v4 7/7] ipa: rkisp1: algorithms: data: imx219: enable DPF tuning for IMX219

before giving a tag.

But the patch looks ok already!


> +      strength:
> +        r: 80
> +        g: 80
> +        b: 80
> +      modes:
> +        - type: "minimal"
> +          filter:
> +            g:  [ 14, 10,  7,  4,  2,  1 ]
> +            rb: [ 14, 11,  8,  4,  2,  1 ]
> +          nll:
> +            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +            scale-mode: "linear"
> +          strength:
> +            r: 60
> +            g: 60
> +            b: 60
> +        - type: "highquality"
> +          filter:
> +            g:  [ 22, 18, 13,  8,  5,  2 ]
> +            rb: [ 20, 18, 16, 11,  7,  3 ]
> +          nll:
> +            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +            scale-mode: "linear"
> +          strength:
> +            r: 130
> +            g: 130
> +            b: 130
>  ...
> diff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml
> index 4b21d412..f36a45b5 100644
> --- a/src/ipa/rkisp1/data/ov5640.yaml
> +++ b/src/ipa/rkisp1/data/ov5640.yaml
> @@ -232,19 +232,64 @@ algorithms:
>              green: 2
>              red-blue: 2
>    - Dpf:
> -      DomainFilter:
> +      filter:
>          g: [ 16, 16, 16, 16, 16, 16 ]
>          rb: [ 16, 16, 16, 16, 16, 16 ]
> -      NoiseLevelFunction:
> +      nll:
>          coeff: [
>            1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
>            1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
>            1023
>          ]
>          scale-mode: "linear"
> -      FilterStrength:
> +      strength:
>          r: 64
>          g: 64
>          b: 64
> +      modes:
> +      - type: "minimal"
> +        filter:
> +          g:  [ 14, 10,  7,  4,  2,  1 ]
> +          rb: [ 14, 11,  8,  4,  2,  1 ]
> +        nll:
> +          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 60
> +          g: 60
> +          b: 60
> +      - type: "highquality"
> +        filter:
> +          g:  [ 22, 18, 13,  8,  5,  2 ]
> +          rb: [ 20, 18, 16, 11,  7,  3 ]
> +        nll:
> +          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 130
> +          g: 130
> +          b: 130
> +      - type: "fast"
> +        filter:
> +          g:  [ 16, 12,  9,  5,  3,  1 ]
> +          rb: [ 16, 13, 10,  6,  4,  2 ]
> +        nll:
> +          coeff: [ 0, 16, 32, 48, 66, 86, 108, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 90
> +          g: 90
> +          b: 90
> +      - type: "zsl"
> +        filter:
> +          g:  [ 18, 14, 10,  6,  3,  1 ]
> +          rb: [ 18, 16, 13,  9,  5,  3 ]
> +        nll:
> +          coeff: [ 0, 20, 40, 60, 82, 106, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528, 592 ]
> +          scale-mode: "linear"
> +        strength:
> +          r: 110
> +          g: 110
> +          b: 110
>    - Filter:
>  ...
> --
> 2.43.0
>
Rui Wang Dec. 18, 2025, 8:20 p.m. UTC | #4
Quoting Jacopo Mondi (2025-12-16 12:05:28)
> Hi Rui
> 
> On Sun, Dec 14, 2025 at 01:16:46PM -0500, Rui Wang wrote:
> > Enable the RkISP1 denoise pre-filter (DPF) for the imx219 sensor by
> > adding the required DPF tuning block to imx219.yaml.
> >
> > Add DPF tuning config for ov5640 to adapt mode selection
> >
> > Signed-off-by: Rui Wang <rui.wang@ideasonboard.com>
> > ---
> >
> > changelog:
> >  - Update ov5640 dpf config against key name change :
> >   DomainFilter-> filter, NoiseLevelFunction-> nll ,FilterStrength ->strength
> >
> >  src/ipa/rkisp1/data/imx219.yaml | 38 ++++++++++++++++++++++++
> >  src/ipa/rkisp1/data/ov5640.yaml | 51 +++++++++++++++++++++++++++++++--
> >  2 files changed, 86 insertions(+), 3 deletions(-)
> >
> > diff --git a/src/ipa/rkisp1/data/imx219.yaml b/src/ipa/rkisp1/data/imx219.yaml
> > index 0d99cb52..d6068ada 100644
> > --- a/src/ipa/rkisp1/data/imx219.yaml
> > +++ b/src/ipa/rkisp1/data/imx219.yaml
> > @@ -111,4 +111,42 @@ algorithms:
> >                 1438, 1226, 1059, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1025, 1054, 1185,
> >                 1326, 1334, 1334,
> >               ]
> > +  - Dpf:
> > +      filter:
> > +        g:  [ 18, 13,  9,  5,  3,  1 ]
> > +        rb: [ 18, 15, 12,  8,  5,  2 ]
> > +      nll:
> > +        coeff: [
> > +          0,  14,  28,  42,  58,  76,  96, 120,
> > +          148, 180, 216, 256, 300, 348, 400, 456,
> > +          520
> > +        ]
> > +        scale-mode: "linear"
> 
> I'll wait for a reply on
> [PATCH v4 7/7] ipa: rkisp1: algorithms: data: imx219: enable DPF tuning for IMX219
> 
> before giving a tag.
> 
> But the patch looks ok already!
>

Sorry Jacobo,
missing your reply on v4 7/7.

Quoting from v4 7/7
-----------------------------------------------------------------
> > This is what confuses me about Dpf.
> >
> > We don't have an "enable DPF" control but rather only "use this DPF
> > mode". What 'mode' does this outer configuration represents ?
> >
> this modes map to reductionmodecontrol :
> NoiseReductionModeMinimal/NoiseReductionModeHighQuality
> /NoiseReductionModeFast/NoiseReductionModeZSL
> each mode would own its specific config in tuning file.
> and NoiseReductionModeOff equal to disable DPF

This was not my question, sorry if it wasn't clear

The tuning file layout is the following one

  - Dpf:
      filter:
      nll:
      strength:
      modes:
        - type: "minimal"
          filter:
          nll:
          strength:
        - type: "highquality"
          filter:
          nll:
          strength:
        - type: "fast"
          filter:
          nll:
          strength:
        - type: "zsl"
          filter:
          nll:
          strength:

Each entry in "modes" is .. a mode, with it's own configuration.
BUT: what do the outer configuration refers to ? What is its purpose ?
It is not associated to any "mode", how can user select it ?

  - Dpf:
      filter:           \
      nll:              | -> This one ??
      strength:         /
      modes:
      - type: ...

----------------------------------------------------
 The is legacy config of Dpf configuaration , in the current implementation ,
 this configs are only help to initiate  struct :config_ strengthConfig_.
 in the function :

int Dpf::parseConfig(const YamlObject &tuningData)
{
	/* Parse base config. */
	int ret = parseSingleConfig(tuningData, config_, strengthConfig_);
	if (ret)
		return ret;

	/* Parse modes. */
	return parseModes(tuningData);
}

As default configs , I will use it for controls initiate value for the next follow story:
auto/manual mode enable.
----------------------------------------------------------------------------------------

Quoting from v4 7/7

Also, as I'm not sure if my reply to [v4 2/7] was clear, for each
"mode" in "modes" you should register a value for
controls::draft::NoiseReductionMode (*) and use can select which of
those to use.

  - Dpf:
      modes:
        - type: "minimal"
        - type: "highquality"

Means you should register:

        { &controls::draft::NoiseReductionMode,
          ControlInfo(NoiseReductionModeMinimal,
                      NoiseReductionModeHighQuality)) };

so that applications can only select between modes described in the
tuning file.



yes , as current situation , only reduction mode's config can be seletable
---------------------------------------------------------------------------

> 
> > +      strength:
> > +        r: 80
> > +        g: 80
> > +        b: 80
> > +      modes:
> > +        - type: "minimal"
> > +          filter:
> > +            g:  [ 14, 10,  7,  4,  2,  1 ]
> > +            rb: [ 14, 11,  8,  4,  2,  1 ]
> > +          nll:
> > +            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> > +            scale-mode: "linear"
> > +          strength:
> > +            r: 60
> > +            g: 60
> > +            b: 60
> > +        - type: "highquality"
> > +          filter:
> > +            g:  [ 22, 18, 13,  8,  5,  2 ]
> > +            rb: [ 20, 18, 16, 11,  7,  3 ]
> > +          nll:
> > +            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> > +            scale-mode: "linear"
> > +          strength:
> > +            r: 130
> > +            g: 130
> > +            b: 130
> >  ...
> > diff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml
> > index 4b21d412..f36a45b5 100644
> > --- a/src/ipa/rkisp1/data/ov5640.yaml
> > +++ b/src/ipa/rkisp1/data/ov5640.yaml
> > @@ -232,19 +232,64 @@ algorithms:
> >              green: 2
> >              red-blue: 2
> >    - Dpf:
> > -      DomainFilter:
> > +      filter:
> >          g: [ 16, 16, 16, 16, 16, 16 ]
> >          rb: [ 16, 16, 16, 16, 16, 16 ]
> > -      NoiseLevelFunction:
> > +      nll:
> >          coeff: [
> >            1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
> >            1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
> >            1023
> >          ]
> >          scale-mode: "linear"
> > -      FilterStrength:
> > +      strength:
> >          r: 64
> >          g: 64
> >          b: 64
> > +      modes:
> > +      - type: "minimal"
> > +        filter:
> > +          g:  [ 14, 10,  7,  4,  2,  1 ]
> > +          rb: [ 14, 11,  8,  4,  2,  1 ]
> > +        nll:
> > +          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> > +          scale-mode: "linear"
> > +        strength:
> > +          r: 60
> > +          g: 60
> > +          b: 60
> > +      - type: "highquality"
> > +        filter:
> > +          g:  [ 22, 18, 13,  8,  5,  2 ]
> > +          rb: [ 20, 18, 16, 11,  7,  3 ]
> > +        nll:
> > +          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
> > +          scale-mode: "linear"
> > +        strength:
> > +          r: 130
> > +          g: 130
> > +          b: 130
> > +      - type: "fast"
> > +        filter:
> > +          g:  [ 16, 12,  9,  5,  3,  1 ]
> > +          rb: [ 16, 13, 10,  6,  4,  2 ]
> > +        nll:
> > +          coeff: [ 0, 16, 32, 48, 66, 86, 108, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528 ]
> > +          scale-mode: "linear"
> > +        strength:
> > +          r: 90
> > +          g: 90
> > +          b: 90
> > +      - type: "zsl"
> > +        filter:
> > +          g:  [ 18, 14, 10,  6,  3,  1 ]
> > +          rb: [ 18, 16, 13,  9,  5,  3 ]
> > +        nll:
> > +          coeff: [ 0, 20, 40, 60, 82, 106, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528, 592 ]
> > +          scale-mode: "linear"
> > +        strength:
> > +          r: 110
> > +          g: 110
> > +          b: 110
> >    - Filter:
> >  ...
> > --
> > 2.43.0
> >

Patch
diff mbox series

diff --git a/src/ipa/rkisp1/data/imx219.yaml b/src/ipa/rkisp1/data/imx219.yaml
index 0d99cb52..d6068ada 100644
--- a/src/ipa/rkisp1/data/imx219.yaml
+++ b/src/ipa/rkisp1/data/imx219.yaml
@@ -111,4 +111,42 @@  algorithms:
                1438, 1226, 1059, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1025, 1054, 1185,
                1326, 1334, 1334,
              ]
+  - Dpf:
+      filter:
+        g:  [ 18, 13,  9,  5,  3,  1 ]
+        rb: [ 18, 15, 12,  8,  5,  2 ]
+      nll:
+        coeff: [
+          0,  14,  28,  42,  58,  76,  96, 120,
+          148, 180, 216, 256, 300, 348, 400, 456,
+          520
+        ]
+        scale-mode: "linear"
+      strength:
+        r: 80
+        g: 80
+        b: 80
+      modes:
+        - type: "minimal"
+          filter:
+            g:  [ 14, 10,  7,  4,  2,  1 ]
+            rb: [ 14, 11,  8,  4,  2,  1 ]
+          nll:
+            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
+            scale-mode: "linear"
+          strength:
+            r: 60
+            g: 60
+            b: 60
+        - type: "highquality"
+          filter:
+            g:  [ 22, 18, 13,  8,  5,  2 ]
+            rb: [ 20, 18, 16, 11,  7,  3 ]
+          nll:
+            coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
+            scale-mode: "linear"
+          strength:
+            r: 130
+            g: 130
+            b: 130
 ...
diff --git a/src/ipa/rkisp1/data/ov5640.yaml b/src/ipa/rkisp1/data/ov5640.yaml
index 4b21d412..f36a45b5 100644
--- a/src/ipa/rkisp1/data/ov5640.yaml
+++ b/src/ipa/rkisp1/data/ov5640.yaml
@@ -232,19 +232,64 @@  algorithms:
             green: 2
             red-blue: 2
   - Dpf:
-      DomainFilter:
+      filter:
         g: [ 16, 16, 16, 16, 16, 16 ]
         rb: [ 16, 16, 16, 16, 16, 16 ]
-      NoiseLevelFunction:
+      nll:
         coeff: [
           1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
           1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
           1023
         ]
         scale-mode: "linear"
-      FilterStrength:
+      strength:
         r: 64
         g: 64
         b: 64
+      modes:
+      - type: "minimal"
+        filter:
+          g:  [ 14, 10,  7,  4,  2,  1 ]
+          rb: [ 14, 11,  8,  4,  2,  1 ]
+        nll:
+          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
+          scale-mode: "linear"
+        strength:
+          r: 60
+          g: 60
+          b: 60
+      - type: "highquality"
+        filter:
+          g:  [ 22, 18, 13,  8,  5,  2 ]
+          rb: [ 20, 18, 16, 11,  7,  3 ]
+        nll:
+          coeff: [ 0, 26, 52, 78, 106, 138, 172, 208, 248, 292, 340, 392, 448, 508, 572, 640, 712 ]
+          scale-mode: "linear"
+        strength:
+          r: 130
+          g: 130
+          b: 130
+      - type: "fast"
+        filter:
+          g:  [ 16, 12,  9,  5,  3,  1 ]
+          rb: [ 16, 13, 10,  6,  4,  2 ]
+        nll:
+          coeff: [ 0, 16, 32, 48, 66, 86, 108, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528 ]
+          scale-mode: "linear"
+        strength:
+          r: 90
+          g: 90
+          b: 90
+      - type: "zsl"
+        filter:
+          g:  [ 18, 14, 10,  6,  3,  1 ]
+          rb: [ 18, 16, 13,  9,  5,  3 ]
+        nll:
+          coeff: [ 0, 20, 40, 60, 82, 106, 132, 160, 192, 228, 268, 312, 360, 412, 468, 528, 592 ]
+          scale-mode: "linear"
+        strength:
+          r: 110
+          g: 110
+          b: 110
   - Filter:
 ...