[libcamera-devel] [PATCH v4 0/5] Digital zoom
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Thu Oct 22 07:11:38 CEST 2020
Hi David,
Thank you for the patches.
On Mon, Oct 19, 2020 at 01:51:51PM +0100, David Plowman wrote:
> Hi everyone
>
> Here's a new version of the digital zoom patches, following on from
> the previous implementations and the discussions that have been
> ongoing since then. Firstly I should point out that I've dropped the
> patch that added digital zoom parameters to the cam application as
> someone had suggested they might do something there (so thanks for
> that!). Also, I'm happy to add some geometry tests once there's a bit
> less churn in this patch set as a whole. In view of the current churn,
> I've dropped other "Reviewed by" tags - I hope that's reasonable.
Sure. Thank you so much for coping with my reviews.
> That leaves 5 patches, as follows:
>
> 1. Adds the ScalerCropMaximum property.
>
> This is the property that expresses the part of the sensor array
> within which an application can crop to implement digital zoom. The
> property name has been changed, obviously, and the documentation
> updated to be in line with recent discussion, otherwise nothing here
> is very different.
>
> 2. Initialisation of the ScalerCropMaximum property.
>
> This is unchanged. Given that the property isn't really very
> meaningful until you know what camera mode you mean, I do wonder
> whether we might be better to initialise this to all zeroes?
> Applications could always call isNull to be sure that they have
> something sensible.
Seems reasonable to me.
> 3. Adds the ScalerCrop property.
>
> No great changes, apart from the property name and description.
>
> 4. Geometry helpers.
>
> Mostly as before, with the addition of a Point class and translation
> functions. There's also a Rectangle::rescaledTo function to make it
> easier to scale crop regions between sensor native and binned/scaled
> coordinates. Maybe someone would prefer a different name?
>
> I've split Rectangle::boundedTo into a separate true intersection
> function (taking the name Rectangle::boundedTo) and a function I've
> named Rectangle::clampedTo. I'm open to suggestions on the name, I
> wanted to choose something that didn't sound like it might be the
> intersection...
>
> 5. Implementation in the Raspberry Pi pipeline.
>
> Mostly as before, with the modifications required by earlier changes
> (notably scaling to and from native sensor coordinates). Some of the
> code here might look a little nicer if we added a
> "Point Rectangle::offset() const { return { x, y }; }" function, and
> changed the translate methods to take a Point instead of a pair of
> ints.
>
> Though I realise that the word "offset" is not popular,
It could be called Rectangle::topLeft().
> and I find the
> idea of translating by a Point mildly offensive, so I'm not sure about
> all that. Thoughts?
I'd be fine with it.
> Well, I think that's everything!
>
> David Plowman (5):
> libcamera: Add SensorCropMaximum property
> libcamera: Initialise the ScalerCropMaximum property
> libcamera: Add ScalerCrop control
> libcamera: Add geometry helper functions
> libcamera: pipeline: raspberrypi: Implementation of digital zoom
>
> include/libcamera/geometry.h | 53 ++++
> include/libcamera/ipa/raspberrypi.h | 1 +
> src/ipa/raspberrypi/raspberrypi.cpp | 7 +
> src/libcamera/camera_sensor.cpp | 6 +
> src/libcamera/control_ids.yaml | 12 +
> src/libcamera/geometry.cpp | 296 ++++++++++++++++++
> .../pipeline/raspberrypi/raspberrypi.cpp | 70 ++++-
> src/libcamera/property_ids.yaml | 23 ++
> 8 files changed, 453 insertions(+), 15 deletions(-)
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list