[PATCH v2 1/2] libcamera: libipa: camera_sensor: Add Sony IMX283 sensor properties

Jacopo Mondi jacopo.mondi at ideasonboard.com
Thu May 2 18:25:59 CEST 2024


Hi Laurent

On Thu, May 02, 2024 at 06:41:39PM GMT, Laurent Pinchart wrote:
> On Thu, May 02, 2024 at 05:24:06PM +0200, Jacopo Mondi wrote:
> > On Fri, Apr 26, 2024 at 06:55:15PM +0530, Umang Jain wrote:
> > > From: Kieran Bingham <kieran.bingham at ideasonboard.com>
> > >
> > > Provide the IMX283 camera sensor properties and registration
> > > with libipa for the gain code helpers.
> > >
> > > The test patterns exposed by the IMX283 do not map well to the current
> > > set of test pattern controls supplied by libcamera. These are left
> > > inentionally unimplemented.
> >
> > intentionally
> >
> > >
> > > Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> > > Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> > > Signed-off-by: Umang Jain <umang.jain at ideasonboard.com>
> > > ---
> > >  src/ipa/libipa/camera_sensor_helper.cpp           | 11 +++++++++++
> > >  src/libcamera/sensor/camera_sensor_properties.cpp |  4 ++++
> > >  2 files changed, 15 insertions(+)
> > >
> > > diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
> > > index ce29f423..f70d898f 100644
> > > --- a/src/ipa/libipa/camera_sensor_helper.cpp
> > > +++ b/src/ipa/libipa/camera_sensor_helper.cpp
> > > @@ -417,6 +417,17 @@ public:
> > >  };
> > >  REGISTER_CAMERA_SENSOR_HELPER("imx258", CameraSensorHelperImx258)
> > >
> > > +class CameraSensorHelperImx283 : public CameraSensorHelper
> > > +{
> > > +public:
> > > +	CameraSensorHelperImx283()
> > > +	{
> > > +		gainType_ = AnalogueGainLinear;
> > > +		gainConstants_.linear = { 0, 2048, -1, 2048 };
> >
> > I see the gain-code to value in the datasheet expressed in dB
> > associated with a graph that suggest and exponential model.
> >
> > Are we sure we should here use the linear one ?
>
> The formula in the datasheet indicates that the gain in dB is equal to
>
> -20 * log((2048 - gain) / 2048)
>
> so the above is correct.
>

I see, so the "-20 * log(gain)" is just to convert to gain value to
db, while the actual code-to-gain formula is

        gain(db) = 20 * log (gain ^ -1)
        gain = 2048 / ( 2048 - gain)

(Thanks for the hint, I missed the - in front of -20)

which corresponds to m0 = 0, c0 = 2048, m1 = -1, c1 = 2048

Reviewed-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>

Thanks
  j

> > > +	}
> > > +};
> > > +REGISTER_CAMERA_SENSOR_HELPER("imx283", CameraSensorHelperImx283)
> > > +
> > >  class CameraSensorHelperImx290 : public CameraSensorHelper
> > >  {
> > >  public:
> > > diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp
> > > index 6e28b09e..4eabbbda 100644
> > > --- a/src/libcamera/sensor/camera_sensor_properties.cpp
> > > +++ b/src/libcamera/sensor/camera_sensor_properties.cpp
> > > @@ -99,6 +99,10 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
> > >  				{ controls::draft::TestPatternModePn9, 4 },
> > >  			},
> > >  		} },
> > > +		{ "imx283", {
> > > +			.unitCellSize = { 2400, 2400 },
> > > +			.testPatternModes = {},
> > > +		} },
> > >  		{ "imx290", {
> > >  			.unitCellSize = { 2900, 2900 },
> > >  			.testPatternModes = {},
>
> --
> Regards,
>
> Laurent Pinchart


More information about the libcamera-devel mailing list