Message ID | 20220421151117.703956-2-naush@raspberrypi.com |
---|---|
State | Accepted |
Commit | 998d23c0a2255de092d6297d12600ffa1bfa3295 |
Headers | show |
Series |
|
Related | show |
Quoting Naushir Patuck via libcamera-devel (2022-04-21 16:11:16) > The SensorSensitivity property is a scaling factor that describes how sensitive > the selected sensor mode is compared to other readout modes of the same sensor. > For example, a binned mode might have twice the sensitivity of the full > resolution mode, meaning you would get double the signal level for the same > exposure and gains. I think having this as a property of the configured camera makes a lot more sense. Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > Signed-off-by: David Plowman <david.plowman@raspberrypi.com> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com> > --- > src/libcamera/property_ids.yaml | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/src/libcamera/property_ids.yaml b/src/libcamera/property_ids.yaml > index 12ecbce5eed4..11b7ebdc3105 100644 > --- a/src/libcamera/property_ids.yaml > +++ b/src/libcamera/property_ids.yaml > @@ -678,6 +678,18 @@ controls: > \todo Turn this property into a "maximum control value" for the > ScalerCrop control once "dynamic" controls have been implemented. > > + - SensorSensitivity: > + type: float > + description: | > + The relative sensitivity of the chosen sensor mode. > + > + Some sensors have readout modes with different sensitivities. For example, > + a binned camera mode might, with the same exposure and gains, produce > + twice the signal level of the full resolution readout. This would be > + signalled by the binned mode, when it is chosen, indicating a value here > + that is twice that of the full resolution mode. This value will be valid > + after the configure method has returned successfully. > + > # ---------------------------------------------------------------------------- > # Draft properties section > > -- > 2.25.1 >
Hi, On Thu, Apr 21, 2022 at 04:11:16PM +0100, Naushir Patuck via libcamera-devel wrote: > The SensorSensitivity property is a scaling factor that describes how sensitive > the selected sensor mode is compared to other readout modes of the same sensor. > For example, a binned mode might have twice the sensitivity of the full > resolution mode, meaning you would get double the signal level for the same > exposure and gains. > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com> > Signed-off-by: Naushir Patuck <naush@raspberrypi.com> > --- > src/libcamera/property_ids.yaml | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/src/libcamera/property_ids.yaml b/src/libcamera/property_ids.yaml > index 12ecbce5eed4..11b7ebdc3105 100644 > --- a/src/libcamera/property_ids.yaml > +++ b/src/libcamera/property_ids.yaml > @@ -678,6 +678,18 @@ controls: > \todo Turn this property into a "maximum control value" for the > ScalerCrop control once "dynamic" controls have been implemented. > > + - SensorSensitivity: > + type: float > + description: | > + The relative sensitivity of the chosen sensor mode. > + > + Some sensors have readout modes with different sensitivities. For example, > + a binned camera mode might, with the same exposure and gains, produce > + twice the signal level of the full resolution readout. This would be > + signalled by the binned mode, when it is chosen, indicating a value here > + that is twice that of the full resolution mode. This value will be valid > + after the configure method has returned successfully. Sorry, I should have payed much more attention during the review. The sensitivity depends on the mode applied to the sensor, and as the description suggests changes at Camera::configure() time. Libcamera properties are immutable and they should not depend on the current configuration but they should stay constant during the whole lieftime of the Camera. This should rather be a Control, even if I understand it cannot be changed by the user. Do we maybe need to reconsider Properties' immutability (Laurent in cc for opinions) Thanks j > + > # ---------------------------------------------------------------------------- > # Draft properties section > > -- > 2.25.1 >
Hi Jacopo. On Fri, 20 May 2022 at 09:43, Jacopo Mondi <jacopo@jmondi.org> wrote: > Hi, > > On Thu, Apr 21, 2022 at 04:11:16PM +0100, Naushir Patuck via > libcamera-devel wrote: > > The SensorSensitivity property is a scaling factor that describes how > sensitive > > the selected sensor mode is compared to other readout modes of the same > sensor. > > For example, a binned mode might have twice the sensitivity of the full > > resolution mode, meaning you would get double the signal level for the > same > > exposure and gains. > > > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com> > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com> > > --- > > src/libcamera/property_ids.yaml | 12 ++++++++++++ > > 1 file changed, 12 insertions(+) > > > > diff --git a/src/libcamera/property_ids.yaml > b/src/libcamera/property_ids.yaml > > index 12ecbce5eed4..11b7ebdc3105 100644 > > --- a/src/libcamera/property_ids.yaml > > +++ b/src/libcamera/property_ids.yaml > > @@ -678,6 +678,18 @@ controls: > > \todo Turn this property into a "maximum control value" for the > > ScalerCrop control once "dynamic" controls have been > implemented. > > > > + - SensorSensitivity: > > + type: float > > + description: | > > + The relative sensitivity of the chosen sensor mode. > > + > > + Some sensors have readout modes with different sensitivities. > For example, > > + a binned camera mode might, with the same exposure and gains, > produce > > + twice the signal level of the full resolution readout. This > would be > > + signalled by the binned mode, when it is chosen, indicating a > value here > > + that is twice that of the full resolution mode. This value will > be valid > > + after the configure method has returned successfully. > > Sorry, I should have payed much more attention during the review. > > The sensitivity depends on the mode applied to the sensor, and as the > description suggests changes at Camera::configure() time. > > Libcamera properties are immutable and they should not depend on the > current configuration but they should stay constant during the whole > lieftime of the Camera. > > This should rather be a Control, even if I understand it cannot be > changed by the user. Do we maybe need to reconsider Properties' > immutability (Laurent in cc for opinions) > ScalerCropMaximum is an existing mutable property as well. Like SensorSensitivity, it is mutable in the sense it is mode specific, but does not change after a Configure() call. Regards, Naush > > Thanks > j > > > + > > # > ---------------------------------------------------------------------------- > > # Draft properties section > > > > -- > > 2.25.1 > > >
Hi Naush, On Fri, May 20, 2022 at 09:52:18AM +0100, Naushir Patuck wrote: > Hi Jacopo. > > On Fri, 20 May 2022 at 09:43, Jacopo Mondi <jacopo@jmondi.org> wrote: > > > Hi, > > > > On Thu, Apr 21, 2022 at 04:11:16PM +0100, Naushir Patuck via > > libcamera-devel wrote: > > > The SensorSensitivity property is a scaling factor that describes how > > sensitive > > > the selected sensor mode is compared to other readout modes of the same > > sensor. > > > For example, a binned mode might have twice the sensitivity of the full > > > resolution mode, meaning you would get double the signal level for the > > same > > > exposure and gains. > > > > > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com> > > > Signed-off-by: Naushir Patuck <naush@raspberrypi.com> > > > --- > > > src/libcamera/property_ids.yaml | 12 ++++++++++++ > > > 1 file changed, 12 insertions(+) > > > > > > diff --git a/src/libcamera/property_ids.yaml > > b/src/libcamera/property_ids.yaml > > > index 12ecbce5eed4..11b7ebdc3105 100644 > > > --- a/src/libcamera/property_ids.yaml > > > +++ b/src/libcamera/property_ids.yaml > > > @@ -678,6 +678,18 @@ controls: > > > \todo Turn this property into a "maximum control value" for the > > > ScalerCrop control once "dynamic" controls have been > > implemented. > > > > > > + - SensorSensitivity: > > > + type: float > > > + description: | > > > + The relative sensitivity of the chosen sensor mode. > > > + > > > + Some sensors have readout modes with different sensitivities. > > For example, > > > + a binned camera mode might, with the same exposure and gains, > > produce > > > + twice the signal level of the full resolution readout. This > > would be > > > + signalled by the binned mode, when it is chosen, indicating a > > value here > > > + that is twice that of the full resolution mode. This value will > > be valid > > > + after the configure method has returned successfully. > > > > Sorry, I should have payed much more attention during the review. > > > > The sensitivity depends on the mode applied to the sensor, and as the > > description suggests changes at Camera::configure() time. > > > > Libcamera properties are immutable and they should not depend on the > > current configuration but they should stay constant during the whole > > lieftime of the Camera. > > > > This should rather be a Control, even if I understand it cannot be > > changed by the user. Do we maybe need to reconsider Properties' > > immutability (Laurent in cc for opinions) > > > > ScalerCropMaximum is an existing mutable property as well. Like > SensorSensitivity, it is mutable in the sense it is mode specific, but > does not change after a Configure() call. You are right, I always assume that being it expressed in the native's sensor array full pixel array coordinates it was kind of constant being skpping/binning not relevant. But some modes might be realized by cropping the full pixel array indeed. > > Regards, > Naush > > > > > > > Thanks > > j > > > > > + > > > # > > ---------------------------------------------------------------------------- > > > # Draft properties section > > > > > > -- > > > 2.25.1 > > > > >
diff --git a/src/libcamera/property_ids.yaml b/src/libcamera/property_ids.yaml index 12ecbce5eed4..11b7ebdc3105 100644 --- a/src/libcamera/property_ids.yaml +++ b/src/libcamera/property_ids.yaml @@ -678,6 +678,18 @@ controls: \todo Turn this property into a "maximum control value" for the ScalerCrop control once "dynamic" controls have been implemented. + - SensorSensitivity: + type: float + description: | + The relative sensitivity of the chosen sensor mode. + + Some sensors have readout modes with different sensitivities. For example, + a binned camera mode might, with the same exposure and gains, produce + twice the signal level of the full resolution readout. This would be + signalled by the binned mode, when it is chosen, indicating a value here + that is twice that of the full resolution mode. This value will be valid + after the configure method has returned successfully. + # ---------------------------------------------------------------------------- # Draft properties section