Re: [PATCH v7 03/11] dt-bindings: video-interface: Replace 'rotation' description

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 3/18/20 9:50 PM, Jacopo Mondi wrote:
> Replace the 'rotation' property description by providing a definition
> relative to the camera sensor pixel array coordinate system and the
> captured scene.
> 
> Signed-off-by: Jacopo Mondi <jacopo@xxxxxxxxxx>
> Co-developed-by: Laurent Pinchart <laurent.pinchart@xxxxxxxxxxxxxxxx>
> Co-developed-by: Niklas Soderlund <niklas.soderlund@xxxxxxxxxxxx>
> 
> ---
>  .../bindings/media/video-interfaces.txt       | 359 +++++++++++++++++-
>  1 file changed, 356 insertions(+), 3 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/media/video-interfaces.txt b/Documentation/devicetree/bindings/media/video-interfaces.txt
> index 1211bdf80722..36e61d599f34 100644
> --- a/Documentation/devicetree/bindings/media/video-interfaces.txt
> +++ b/Documentation/devicetree/bindings/media/video-interfaces.txt
> @@ -85,9 +85,362 @@ Optional properties
> 
>  - lens-focus: A phandle to the node of the focus lens controller.
> 
> -- rotation: The device, typically an image sensor, is not mounted upright,
> -  but a number of degrees counter clockwise. Typical values are 0 and 180
> -  (upside down).
> +- rotation: The camera rotation is expressed as the angular difference in
> +  degrees between two reference systems, one relative to the camera module, and
> +  one defined on the external world scene to be captured when projected on the
> +  image sensor pixel array.
> +
> +  A camera sensor has a 2-dimensional reference system 'Rc' defined by
> +  its pixel array read-out order. The origin is set to the first pixel
> +  being read out, the X-axis points along the column read-out direction
> +  towards the last columns, and the Y-axis along the row read-out
> +  direction towards the last row.
> +
> +  A typical example for a sensor with a 2592x1944 pixel array matrix
> +  observed from the front is

is -> is:

> +
> +              2591       X-axis          0
> +                <------------------------+ 0
> +                .......... ... ..........!
> +                .......... ... ..........! Y-axis
> +                           ...           !
> +                .......... ... ..........!
> +                .......... ... ..........! 1943
> +                                         V
> +
> +  The external world scene reference system 'Rs' is a 2-dimensional
> +  reference system on the focal plane of the camera module. The origin is
> +  placed on the top-left corner of the visible scene, the X-axis points
> +  towards the right, and the Y-axis points towards the bottom of the
> +  scene. The top, bottom, left and right directions are intentionally not
> +  defined and depend on the environment in which the camera is used.
> +
> +  A typical example of a (very common) picture of a shark swimming from
> +  left to right, as seen from the camera, is

is -> is:

> +
> +               0               X-axis
> +             0 +------------------------------------->
> +               !
> +               !
> +               !
> +               !           |\____)\___
> +               !           ) _____  __`<
> +               !           |/     )/
> +               !
> +               !
> +               !
> +               V
> +             Y-axis
> +
> +  With the reference system 'Rs' placed on the camera focal plane.

I think here 'With' can be 'with' (since you continue the previous sentence)
and 'plane.' should be 'plane:' since it refers to the picture below that explains
the focal plane.

> +
> +                                  ¸.·˙!
> +                              ¸.·˙    !
> +                  _       ¸.·˙        !
> +               +-/ \-+¸.·˙            !
> +               | (o) |                ! Camera focal plane
> +               +-----+˙·.¸            !
> +                          ˙·.¸        !
> +                              ˙·.¸    !
> +                                  ˙·.¸!
> +
> +  When projected on the sensor's pixel array, the image and the associated
> +  reference system 'Rs' are typically (but not always) inverted, due to
> +  the camera module's lens optical inversion effect.
> +
> +  Assuming the above represented scene of the swimming shark, the lens
> +  inversion projects the scene and its reference system onto the sensor
> +  pixel array, seen from the front of the camera sensor, as follow

follow -> follows:

> +
> +            Y-axis
> +               ^
> +               !
> +               !
> +               !
> +               !            |\_____)\__
> +               !            ) ____  ___.<
> +               !            |/    )/
> +               !
> +               !
> +               !
> +             0 +------------------------------------->
> +               0               X-axis
> +
> +  Note the shark being upside-down.
> +
> +  The resulting projected reference system is named 'Rp'.
> +
> +  The camera rotation property is then defined as the angular difference
> +  in the counter-clockwise direction between the camera reference system
> +  'Rc' and the projected scene reference system 'Rp'. It is expressed in
> +  degrees as a number in the range [0, 360[.
> +
> +  Examples
> +
> +  0 degrees camera rotation

rotation -> rotation:

> +
> +
> +                    Y-Rp
> +                     ^
> +              Y-Rc   !
> +               ^     !
> +               !     !
> +               !     !
> +               !     !
> +               !     !
> +               !     !
> +               !     !
> +               !     !
> +               !   0 +------------------------------------->
> +               !     0               X-Rp
> +             0 +------------------------------------->
> +               0               X-Rc
> +
> +
> +                                X-Rc                0
> +               <------------------------------------+ 0
> +                           X-Rp                 0   !
> +           <------------------------------------+ 0 !
> +                                                !   !
> +                                                !   !
> +                                                !   !
> +                                                !   !
> +                                                !   !
> +                                                !   !
> +                                                !   !
> +                                                !   V
> +                                                !  Y-Rc
> +                                                V
> +                                               Y-Rp
> +
> +  90 degrees camera rotation

Ditto here and for the 180 and 270 examples below.

> +
> +               0        Y-Rc
> +             0 +-------------------->
> +               !   Y-Rp
> +               !    ^
> +               !    !
> +               !    !
> +               !    !
> +               !    !
> +               !    !
> +               !    !
> +               !    !
> +               !    !
> +               !    !
> +               !  0 +------------------------------------->
> +               !    0              X-Rp
> +               !
> +               !
> +               !
> +               !
> +               V
> +              X-Rc
> +
> +  180 degrees camera rotation
> +
> +                                            0
> +       <------------------------------------+ 0
> +                        X-Rc                !
> +              Y-Rp                          !
> +               ^                            !
> +               !                            !
> +               !                            !
> +               !                            !
> +               !                            !
> +               !                            !
> +               !                            !
> +               !                            V
> +               !                           Y-Rc
> +             0 +------------------------------------->
> +               0              X-Rp
> +
> +  270 degrees camera rotation
> +
> +               0        Y-Rc
> +             0 +-------------------->
> +               !                                        0
> +               !    <-----------------------------------+ 0
> +               !                    X-Rp                !
> +               !                                        !
> +               !                                        !
> +               !                                        !
> +               !                                        !
> +               !                                        !
> +               !                                        !
> +               !                                        !
> +               !                                        !
> +               !                                        V
> +               !                                       Y-Rp
> +               !
> +               !
> +               !
> +               !
> +               V
> +              X-Rc
> +
> +
> +  Example one - Webcam
> +
> +  A camera module installed on the user facing part of a laptop screen
> +  casing used for video calls. The captured images are meant to be
> +  displayed in landscape mode (width > height) on the laptop screen.
> +
> +  The camera is typically mounted upside-down to compensate the lens
> +  optical inversion effect.

effect. -> effect:

The : links the sentence with the following picture. I think this should be
done in the remainder of this section, so I won't repeat myself.

> +
> +                    Y-Rp
> +              Y-Rc   ^
> +               ^     !
> +               !     !
> +               !     !       |\_____)\__
> +               !     !       ) ____  ___.<
> +               !     !       |/    )/
> +               !     !
> +               !     !
> +               !     !
> +               !   0 +------------------------------------->
> +               !     0           X-Rp
> +             0 +------------------------------------->
> +               0            X-Rc
> +
> +  The two reference systems are aligned, the resulting camera rotation is
> +  0 degrees, no rotation correction needs to be applied to the resulting
> +  image once captured to memory buffers to correctly display it to users.
> +
> +               +--------------------------------------+
> +               !                                      !
> +               !                                      !
> +               !                                      !
> +               !             |\____)\___              !
> +               !             ) _____  __`<            !
> +               !             |/     )/                !
> +               !                                      !
> +               !                                      !
> +               !                                      !
> +               +--------------------------------------+
> +
> +  If the camera sensor is not mounted upside-down to compensate for the
> +  lens optical inversion, the two reference systems will not be aligned,
> +  with 'Rp' being rotated 180 degrees relatively to 'Rc'.
> +
> +
> +                        X-Rc                0
> +       <------------------------------------+ 0
> +                                            !
> +              Y-Rp                          !
> +               ^                            !
> +               !                            !
> +               !       |\_____)\__          !
> +               !       ) ____  ___.<        !
> +               !       |/    )/             !
> +               !                            !
> +               !                            !
> +               !                            V
> +               !                           Y-Rc
> +             0 +------------------------------------->
> +               0            X-Rp
> +
> +  The image once captured to memory will then be rotated by 180 degrees
> +
> +               +--------------------------------------+
> +               !                                      !
> +               !                                      !
> +               !                                      !
> +               !              __/(_____/|             !
> +               !            >.___  ____ (             !
> +               !                 \(    \|             !
> +               !                                      !
> +               !                                      !
> +               !                                      !
> +               +--------------------------------------+
> +
> +  A software rotation correction of 180 degrees should be applied to
> +  correctly display the image.
> +
> +               +--------------------------------------+
> +               !                                      !
> +               !                                      !
> +               !                                      !
> +               !             |\____)\___              !
> +               !             ) _____  __`<            !
> +               !             |/     )/                !
> +               !                                      !
> +               !                                      !
> +               !                                      !
> +               +--------------------------------------+
> +
> +  Example two - Phone camera
> +
> +  A camera installed on the back side of a mobile device facing away from
> +  the user. The captured images are meant to be displayed in portrait mode
> +  (height > width) to match the device screen orientation and the device
> +  usage orientation used when taking the picture.
> +
> +  The camera sensor is typically mounted with its pixel array longer side
> +  aligned to the device longer side, upside-down mounted to compensate for
> +  the lens optical inversion effect.
> +
> +               0        Y-Rc
> +             0 +-------------------->
> +               !   Y-Rp
> +               !    ^
> +               !    !
> +               !    !
> +               !    !
> +               !    !            |\_____)\__
> +               !    !            ) ____  ___.<
> +               !    !            |/    )/
> +               !    !
> +               !    !
> +               !    !
> +               !  0 +------------------------------------->
> +               !    0                X-Rp
> +               !
> +               !
> +               !
> +               !
> +               V
> +              X-Rc
> +
> +  The two reference systems are not aligned and the 'Rp' reference
> +  system is rotated by 90 degrees in the counter-clockwise direction
> +  relatively to the 'Rc' reference system.
> +
> +  The image once captured to memory will be rotated.
> +
> +               +-------------------------------------+
> +               |                 _ _                 |
> +               |                \   /                |
> +               |                 | |                 |
> +               |                 | |                 |
> +               |                 |  >                |
> +               |                <  |                 |
> +               |                 | |                 |
> +               |                   .                 |
> +               |                  V                  |
> +               +-------------------------------------+
> +
> +  A correction of 90 degrees in counter-clockwise direction has to be
> +  applied to correctly display the image in portrait mode on the device
> +  screen.
> +
> +                        +--------------------+
> +                        |                    |
> +                        |                    |
> +                        |                    |
> +                        |                    |
> +                        |                    |
> +                        |                    |
> +                        |   |\____)\___      |
> +                        |   ) _____  __`<    |
> +                        |   |/     )/        |
> +                        |                    |
> +                        |                    |
> +                        |                    |
> +                        |                    |
> +                        |                    |
> +                        +--------------------+
> 
>  - location: The mount location of a device (typically an image sensor or a flash
>    LED) expressed as a position relative to the usage orientation of the system
> --
> 2.25.1
> 

Regards,

	Hans



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux