[libcamera-devel] [PATCH 1/1] libcamera: controls: Change LensPosition units to dioptres

David Plowman david.plowman at raspberrypi.com
Thu Nov 17 16:45:00 CET 2022


The units for the LensPosition control, previously defined as being in
units of 1 / hyperfocal_distance, are changed to 1 / distance (in
metres).

Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
---
 src/libcamera/control_ids.yaml | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml
index a456e6c0..adea5f90 100644
--- a/src/libcamera/control_ids.yaml
+++ b/src/libcamera/control_ids.yaml
@@ -591,25 +591,27 @@ controls:
         AfModeManual, though the value is reported back unconditionally in all
         modes.
 
-        The units are a reciprocal distance scale like dioptres but normalised
-        for the hyperfocal distance. That is, for a lens with hyperfocal
-        distance H, and setting it to a focal distance D, the lens position LP,
-        which is generally a non-integer, is given by
+        This value, which is generally a non-integer, is the reciprocal of the
+        focal distance in metres, also known as dioptres. That is, to set a
+        focal distance D, the lens position LP is given by
 
-        \f$LP = \frac{H}{D}\f$
+        \f$LP = \frac{1\mathrm{m}}{D}\f$
 
         For example:
 
         0 moves the lens to infinity.
-        0.5 moves the lens to twice the hyperfocal distance.
-        1 moves the lens to the hyperfocal position.
-        And larger values will focus the lens ever closer.
+        0.5 moves the lens to focus on objects 2m away.
+        2 moves the lens to focus on objects 50cm away.
+        And larger values will focus the lens closer.
 
-        \todo Define a property to report the Hyperforcal distance of calibrated
-        lenses.
+        The default value of the control should indicate a good general position
+        for the lens, often corresponding to the hyperfocal distance (the
+        closest position for which objects at infinity are still acceptably
+        sharp). The minimum will often be zero (meaning infinity), and the
+        maximum value defines the closest focus position.
 
-        \todo Define a property to report the maximum and minimum positions of
-        this lens. The minimum value will often be zero (meaning infinity).
+        \todo Define a property to report the Hyperfocal distance of calibrated
+        lenses.
 
   - AfState:
       type: int32_t
-- 
2.30.2



More information about the libcamera-devel mailing list