[libcamera-devel] [PATCH 2/2] ipa: libipa: Add OV5695 Camera Sensor Helper

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Mar 1 15:55:25 CET 2023


Quoting Jacopo Mondi (2023-02-28 15:33:22)
> Hi Kieran
> 
> On Mon, Feb 27, 2023 at 08:42:54PM +0000, Kieran Bingham via libcamera-devel wrote:
> > Provide a CameraSensorHelper for the OV5695, along with the
> > corresponding camera sensor properties.
> >
> > Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> > ---
> >  src/ipa/libipa/camera_sensor_helper.cpp    | 11 +++++++++++
> >  src/libcamera/camera_sensor_properties.cpp |  8 ++++++++
> >  2 files changed, 19 insertions(+)
> >
> > diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp
> > index d1051cc25656..a38fefc75372 100644
> > --- a/src/ipa/libipa/camera_sensor_helper.cpp
> > +++ b/src/ipa/libipa/camera_sensor_helper.cpp
> > @@ -527,6 +527,17 @@ public:
> >  };
> >  REGISTER_CAMERA_SENSOR_HELPER("ov5693", CameraSensorHelperOv5693)
> >
> > +class CameraSensorHelperOv5695 : public CameraSensorHelper
> > +{
> > +public:
> > +     CameraSensorHelperOv5695()
> > +     {
> > +             gainType_ = AnalogueGainLinear;
> > +             gainConstants_.linear = { 1, 0, 0, 128 };
> > +     }
> > +};
> > +REGISTER_CAMERA_SENSOR_HELPER("ov5695", CameraSensorHelperOv5695)
> > +
> 
> I don't have a datasheet, but again, seeing this in action it seems
> reasonable
> 
> >  class CameraSensorHelperOv8858 : public CameraSensorHelper
> >  {
> >  public:
> > diff --git a/src/libcamera/camera_sensor_properties.cpp b/src/libcamera/camera_sensor_properties.cpp
> > index 7652c5f3e24c..a92c13b87b7f 100644
> > --- a/src/libcamera/camera_sensor_properties.cpp
> > +++ b/src/libcamera/camera_sensor_properties.cpp
> > @@ -204,6 +204,14 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen
> >                                */
> >                       },
> >               } },
> > +             { "ov5695", {
> > +                     .unitCellSize = { 1400, 1400 },
> 
> Can't validate this without a datasheet..

It's listed in the publicly available product brief:

 pixel size: 1.4 μm x 1.4 μm



> 
> > +                     .testPatternModes = {
> > +                             { controls::draft::TestPatternModeOff, 0 },
> > +                             { controls::draft::TestPatternModeColorBars, 2 },
> > +                             { controls::draft::TestPatternModeColorBarsFadeToGray, 4},
> > +                     },
> 
> The driver reports
> 
> static const char * const ov5695_test_pattern_menu[] = {
>         "Disabled",
>         "Vertical Color Bar Type 1",
>         "Vertical Color Bar Type 2",
>         "Vertical Color Bar Type 3",
>         "Vertical Color Bar Type 4"
> };
> 
> Have you inspected the produced test pattern ?
> If so

Yes, that was my best identifications from enabling the test patterns.
Annoyingly - the AGC/AWB quite quickly destroys the TPG patterns so you
have to be quick to see what's output. But that's a separate (and I
think known) issue...

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


Thanks


> 
> Thanks
>   j
> 
> > +             } },
> >               { "ov8858", {
> >                       .unitCellSize = { 1120, 1120 },
> >                       .testPatternModes = {
> > --
> > 2.34.1
> >


More information about the libcamera-devel mailing list