1 .. SPDX-License-Identifier: GFDL-1.1-no-invari 1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later 2 2 3 .. _image-source-controls: 3 .. _image-source-controls: 4 4 5 ****************************** 5 ****************************** 6 Image Source Control Reference 6 Image Source Control Reference 7 ****************************** 7 ****************************** 8 8 9 The Image Source control class is intended for 9 The Image Source control class is intended for low-level control of 10 image source devices such as image sensors. Th 10 image source devices such as image sensors. The devices feature an 11 analogue to digital converter and a bus transm 11 analogue to digital converter and a bus transmitter to transmit the 12 image data out of the device. 12 image data out of the device. 13 13 14 14 15 .. _image-source-control-id: 15 .. _image-source-control-id: 16 16 17 Image Source Control IDs 17 Image Source Control IDs 18 ======================== 18 ======================== 19 19 20 ``V4L2_CID_IMAGE_SOURCE_CLASS (class)`` 20 ``V4L2_CID_IMAGE_SOURCE_CLASS (class)`` 21 The IMAGE_SOURCE class descriptor. 21 The IMAGE_SOURCE class descriptor. 22 22 23 ``V4L2_CID_VBLANK (integer)`` 23 ``V4L2_CID_VBLANK (integer)`` 24 Vertical blanking. The idle period after e 24 Vertical blanking. The idle period after every frame during which no 25 image data is produced. The unit of vertic 25 image data is produced. The unit of vertical blanking is a line. 26 Every line has length of the image width p 26 Every line has length of the image width plus horizontal blanking at 27 the pixel rate defined by ``V4L2_CID_PIXEL 27 the pixel rate defined by ``V4L2_CID_PIXEL_RATE`` control in the 28 same sub-device. 28 same sub-device. 29 29 30 ``V4L2_CID_HBLANK (integer)`` 30 ``V4L2_CID_HBLANK (integer)`` 31 Horizontal blanking. The idle period after 31 Horizontal blanking. The idle period after every line of image data 32 during which no image data is produced. Th 32 during which no image data is produced. The unit of horizontal 33 blanking is pixels. 33 blanking is pixels. 34 34 35 ``V4L2_CID_ANALOGUE_GAIN (integer)`` 35 ``V4L2_CID_ANALOGUE_GAIN (integer)`` 36 Analogue gain is gain affecting all colour 36 Analogue gain is gain affecting all colour components in the pixel 37 matrix. The gain operation is performed in 37 matrix. The gain operation is performed in the analogue domain 38 before A/D conversion. 38 before A/D conversion. 39 39 40 ``V4L2_CID_TEST_PATTERN_RED (integer)`` 40 ``V4L2_CID_TEST_PATTERN_RED (integer)`` 41 Test pattern red colour component. 41 Test pattern red colour component. 42 42 43 ``V4L2_CID_TEST_PATTERN_GREENR (integer)`` 43 ``V4L2_CID_TEST_PATTERN_GREENR (integer)`` 44 Test pattern green (next to red) colour co 44 Test pattern green (next to red) colour component. 45 45 46 ``V4L2_CID_TEST_PATTERN_BLUE (integer)`` 46 ``V4L2_CID_TEST_PATTERN_BLUE (integer)`` 47 Test pattern blue colour component. 47 Test pattern blue colour component. 48 48 49 ``V4L2_CID_TEST_PATTERN_GREENB (integer)`` 49 ``V4L2_CID_TEST_PATTERN_GREENB (integer)`` 50 Test pattern green (next to blue) colour c 50 Test pattern green (next to blue) colour component. 51 51 52 ``V4L2_CID_UNIT_CELL_SIZE (struct)`` 52 ``V4L2_CID_UNIT_CELL_SIZE (struct)`` 53 This control returns the unit cell size in 53 This control returns the unit cell size in nanometers. The struct 54 :c:type:`v4l2_area` provides the width and 54 :c:type:`v4l2_area` provides the width and the height in separate 55 fields to take into consideration asymmetr 55 fields to take into consideration asymmetric pixels. 56 This control does not take into considerat 56 This control does not take into consideration any possible hardware 57 binning. 57 binning. 58 The unit cell consists of the whole area o 58 The unit cell consists of the whole area of the pixel, sensitive and 59 non-sensitive. 59 non-sensitive. 60 This control is required for automatic cal 60 This control is required for automatic calibration of sensors/cameras. 61 61 62 .. c:type:: v4l2_area 62 .. c:type:: v4l2_area 63 63 64 .. flat-table:: struct v4l2_area 64 .. flat-table:: struct v4l2_area 65 :header-rows: 0 65 :header-rows: 0 66 :stub-columns: 0 66 :stub-columns: 0 67 :widths: 1 1 2 67 :widths: 1 1 2 68 68 69 * - __u32 69 * - __u32 70 - ``width`` 70 - ``width`` 71 - Width of the area. 71 - Width of the area. 72 * - __u32 72 * - __u32 73 - ``height`` 73 - ``height`` 74 - Height of the area. 74 - Height of the area. 75 75 76 ``V4L2_CID_NOTIFY_GAINS (integer array)`` 76 ``V4L2_CID_NOTIFY_GAINS (integer array)`` 77 The sensor is notified what gains will be 77 The sensor is notified what gains will be applied to the different 78 colour channels by subsequent processing ( 78 colour channels by subsequent processing (such as by an ISP). The 79 sensor is merely informed of these values 79 sensor is merely informed of these values in case it performs 80 processing that requires them, but it does 80 processing that requires them, but it does not apply them itself to 81 the output pixels. 81 the output pixels. 82 82 83 Currently it is defined only for Bayer sen 83 Currently it is defined only for Bayer sensors, and is an array 84 control taking 4 gain values, being the ga 84 control taking 4 gain values, being the gains for each of the 85 Bayer channels. The gains are always in th 85 Bayer channels. The gains are always in the order B, Gb, Gr and R, 86 irrespective of the exact Bayer order of t 86 irrespective of the exact Bayer order of the sensor itself. 87 87 88 The use of an array allows this control to 88 The use of an array allows this control to be extended to sensors 89 with, for example, non-Bayer CFAs (colour 89 with, for example, non-Bayer CFAs (colour filter arrays). 90 90 91 The units for the gain values are linear, 91 The units for the gain values are linear, with the default value 92 representing a gain of exactly 1.0. For ex 92 representing a gain of exactly 1.0. For example, if this default value 93 is reported as being (say) 128, then a val 93 is reported as being (say) 128, then a value of 192 would represent 94 a gain of exactly 1.5. 94 a gain of exactly 1.5.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.