@@ -39,6 +39,7 @@ controls_map = {
'draft': 'control_ids_draft.yaml',
'rpi/pisp': 'control_ids_rpi.yaml',
'rpi/vc4': 'control_ids_rpi.yaml',
+ 'rkisp1': 'control_ids_rkisp1.yaml',
},
'properties': {
@@ -58,6 +58,10 @@ controls:
value: 4
description: |
Noise reduction is applied at different levels to different streams.
+ - name: NoiseReductionModeManual
+ value: 5
+ description: |
+ Manual control all noise reduction parameters.
- ColorCorrectionAberrationMode:
type: int32_t
new file mode 100644
@@ -0,0 +1,93 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+#
+# Copyright (C) 2026, Ideas On Board
+#
+# RkISP1 specific control definitions
+---
+vendor: rkisp1
+controls:
+ - DpfEnable:
+ type: int32_t
+ direction: inout
+ description: |
+ Enable or disable the Denoise Pre-Filter (DPF) processing.
+ When disabled (false) the hardware DPF is forced off regardless of
+ denoise mode selection. When enabled (true) the algorithm may
+ program parameters and adapt them from manual mode overrides.
+ Reported in metadata as an int32_t.
+ enum:
+ - name: DpfEnableOff
+ value: 0
+ description: The DPF is disabled.
+ - name: DpfEnableOn
+ value: 1
+ description: The DPF is enabled.
+
+ - DpfChannelStrengths:
+ type: int32_t
+ direction: inout
+ description: |
+ Sets the filter strength for Red, Green, and Blue channels respectively.
+ Values map to hardware strength registers (typically 0..255).
+ Size must be exactly 3 when set. Order: R, G, B.
+ size: [3]
+
+ - DpfGreenSpatialCoefficients:
+ type: int32_t
+ direction: inout
+ description: |
+ Sets the 6 spatial kernel coefficients for the Green channel (9x9 kernel).
+ Order must follow the hardware expectation.
+ Each value corresponds to a coefficient (typically 0..16).
+ All 6 values are required when provided; otherwise ignored.
+ size: [6]
+
+ - DpfRedBlueSpatialCoefficients:
+ type: int32_t
+ direction: inout
+ description: |
+ Sets the spatial kernel coefficients for the Red and Blue channels.
+ Applies to either 9x9 or 13x9 filter size.
+ For 9x9 mode, the 6th value is ignored by the driver if 6 are provided,
+ or pass 5 values if supported.
+ Values correspond to coefficients (typically 0..16).
+ size: [6]
+
+ - DpfRedBlueFilterSize:
+ type: int32_t
+ direction: inout
+ description: |
+ Sets the filter size for the Red and Blue channels.
+ Values correspond to hardware filter size settings.
+ enum:
+ - name: DpfRedBlueFilterSize9x9
+ value: 0
+ description: 9x9 filter size.
+ - name: DpfRedBlueFilterSize13x9
+ value: 1
+ description: 13x9 filter size.
+
+ - DpfNoiseLevelLookupCoefficients:
+ type: int32_t
+ direction: inout
+ description: |
+ Sets the 17 coefficients for the Noise Level Lookup (NLL) table.
+ The table defines a piecewise-linear function characterizing sensor noise.
+ Must supply the full set of 17 values when used.
+ Values correspond to coefficients (typically 1..1023).
+ size: [17]
+
+ - DpfNoiseLevelLookupScaleMode:
+ type: int32_t
+ direction: inout
+ description: |
+ Sets the NLL scale mode (0=linear, 1=logarithmic).
+ Matches hardware RKISP1_CIF_ISP_NLL_SCALE_* constants.
+ enum:
+ - name: DpfNoiseLevelLookupScaleLinear
+ value: 0
+ description: Linear scale.
+ - name: DpfNoiseLevelLookupScaleLogarithmic
+ value: 1
+ description: Logarithmic scale.
+...
\ No newline at end of file
@@ -15,6 +15,8 @@ ranges:
rpi: 20000
# Controls for debug metadata
debug: 30000
- # Next range starts at 40000
+ # Rockchip ISP1 vendor controls
+ rkisp1: 40000
+ # Next range starts at 50000
...
Introduce vendor-specific controls for the Rockchip ISP1 Denoise Pre-Filter (DPF) algorithm. These controls allow detailed configuration of the DPF block, including: - DpfEnable: Enable/disable DPF processing. - DpfChannelStrengths: Per-channel filter strength configuration. - DpfGreenSpatialCoefficients: Spatial kernel coefficients for the Green channel. - DpfRedBlueSpatialCoefficients: Spatial kernel coefficients for Red/Blue channels. - DpfRedBlueFilterSize: Filter size selection (9x9 or 13x9). - DpfNoiseLevelLookupCoefficients: Noise Level Lookup (NLL) table coefficients. - DpfNoiseLevelLookupScaleMode: NLL scaling mode (Linear/Logarithmic). Add 'NoiseReductionModeManual' to the draft control definitions to support manual control of noise reduction parameters. The 'rkisp1' vendor controls are registered in the build system with a dedicated control ID range. Signed-off-by: Rui Wang <rui.wang@ideasonboard.com> --- include/libcamera/meson.build | 1 + src/libcamera/control_ids_draft.yaml | 4 ++ src/libcamera/control_ids_rkisp1.yaml | 93 +++++++++++++++++++++++++++ src/libcamera/control_ranges.yaml | 4 +- 4 files changed, 101 insertions(+), 1 deletion(-) create mode 100644 src/libcamera/control_ids_rkisp1.yaml