[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