[libcamera-devel,v2,1/2] libcamera: controls: Add DigitalGain control
diff mbox series

Message ID 20201126145005.8838-2-david.plowman@raspberrypi.com
State Accepted
Delegated to: Laurent Pinchart
Headers show
Series
  • Digital gain control
Related show

Commit Message

David Plowman Nov. 26, 2020, 2:50 p.m. UTC
This control reports the global digital gain applied by the pipeline
as a whole, after capturing a raw image from the sensor.

Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
---
 src/libcamera/control_ids.yaml | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

Comments

Jacopo Mondi Nov. 26, 2020, 3:26 p.m. UTC | #1
Hi David,

On Thu, Nov 26, 2020 at 02:50:04PM +0000, David Plowman wrote:
> This control reports the global digital gain applied by the pipeline
> as a whole, after capturing a raw image from the sensor.
>
> Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
> ---
>  src/libcamera/control_ids.yaml | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
>
> diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
> index c8874fa9..75a00f79 100644
> --- a/src/libcamera/control_ids.yaml
> +++ b/src/libcamera/control_ids.yaml
> @@ -530,4 +530,21 @@ controls:
>          This control is only present when the pipeline supports scaling. Its
>          maximum valid value is given by the properties::ScalerCropMaximum
>          property, and the two can be used to implement digital zoom.
> +
> +  - DigitalGain:
> +      type: float
> +      description: |
> +        Digital gain value applied during the processing steps applied
> +        to the image as captured from the sensor.
> +
> +        The global digital gain factor is applied to all the colour channels
> +        of the RAW image. Different pipeline models are free to
> +        specify how the global gain factor applies to each separate
> +        channel.
> +
> +        If an imaging pipeline applies digital gain in distinct
> +        processing steps, this value indicates their total sum.
> +        Pipelines are free to decide how to adjust each processing
> +        step to respect the received gain factor and shall report
> +        their total value in the request metadata.

Still not sure I agree with myself here completely :)
But indeed:
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

Thanks
   j

>  ...
> --
> 2.20.1
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
Laurent Pinchart Dec. 20, 2020, 2:58 a.m. UTC | #2
Hi David,

Thank you for the patch.

On Thu, Nov 26, 2020 at 02:50:04PM +0000, David Plowman wrote:
> This control reports the global digital gain applied by the pipeline
> as a whole, after capturing a raw image from the sensor.

I believe there's a high chance that we'll end up reworking the
gain-related controls, but that's not a reason to delay merging this
patch given that it's quite clear that more design work will be needed
to design and document the pipeline model (it's quite clear to me at
least, with my limited knowledge on the topic, maybe it would be
straightforward for someone with more experience :-)).

> Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
> ---
>  src/libcamera/control_ids.yaml | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
> index c8874fa9..75a00f79 100644
> --- a/src/libcamera/control_ids.yaml
> +++ b/src/libcamera/control_ids.yaml
> @@ -530,4 +530,21 @@ controls:
>          This control is only present when the pipeline supports scaling. Its
>          maximum valid value is given by the properties::ScalerCropMaximum
>          property, and the two can be used to implement digital zoom.
> +
> +  - DigitalGain:
> +      type: float
> +      description: |
> +        Digital gain value applied during the processing steps applied
> +        to the image as captured from the sensor.

The double applied sounds strange. Given that we'll rework gain-related
controls anyway there's no need for a v3, so

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> +
> +        The global digital gain factor is applied to all the colour channels
> +        of the RAW image. Different pipeline models are free to
> +        specify how the global gain factor applies to each separate
> +        channel.
> +
> +        If an imaging pipeline applies digital gain in distinct
> +        processing steps, this value indicates their total sum.
> +        Pipelines are free to decide how to adjust each processing
> +        step to respect the received gain factor and shall report
> +        their total value in the request metadata.
>  ...

Patch
diff mbox series

diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
index c8874fa9..75a00f79 100644
--- a/src/libcamera/control_ids.yaml
+++ b/src/libcamera/control_ids.yaml
@@ -530,4 +530,21 @@  controls:
         This control is only present when the pipeline supports scaling. Its
         maximum valid value is given by the properties::ScalerCropMaximum
         property, and the two can be used to implement digital zoom.
+
+  - DigitalGain:
+      type: float
+      description: |
+        Digital gain value applied during the processing steps applied
+        to the image as captured from the sensor.
+
+        The global digital gain factor is applied to all the colour channels
+        of the RAW image. Different pipeline models are free to
+        specify how the global gain factor applies to each separate
+        channel.
+
+        If an imaging pipeline applies digital gain in distinct
+        processing steps, this value indicates their total sum.
+        Pipelines are free to decide how to adjust each processing
+        step to respect the received gain factor and shall report
+        their total value in the request metadata.
 ...