← Documents Documentation/userspace-api/media/v4l/ext-ctrls-flash.rst GitHub 원문 ↗

Linux 6.18.37 · Userspace API / Media / V4L

Flash Control Reference

LED·xenon flash의 software/hardware strobe, torch, intensity, fault와 ready 상태를 설명합니다.

Source pathDocumentation/userspace-api/media/v4l/ext-ctrls-flash.rst
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

요약·해설

ext-ctrls-flash.rst:1-188

Flash API는 software 또는 sensor-synchronized strobe, torch와 xenon charge를 통합합니다. 발광 전에는 mode·source·intensity·timeout·fault·ready 상태를 함께 확인해야 합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 .. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2
3 .. _flash-controls:
4
5 ***********************
6 Flash Control Reference
7 ***********************
8
9 The V4L2 flash controls are intended to provide generic access to flash
10 controller devices. Flash controller devices are typically used in
11 digital cameras.
12
13 The interface can support both LED and xenon flash devices. As of
14 writing this, there is no xenon flash driver using this interface.
15
16
17 .. _flash-controls-use-cases:
18
19 Supported use cases
20 ===================
21
22
23 Unsynchronised LED flash (software strobe)
24 ------------------------------------------
25
26 Unsynchronised LED flash is controlled directly by the host as the
27 sensor. The flash must be enabled by the host before the exposure of the
28 image starts and disabled once it ends. The host is fully responsible
29 for the timing of the flash.
30
31 Example of such device: Nokia N900.
32
33
34 Synchronised LED flash (hardware strobe)
35 ----------------------------------------
36
37 The synchronised LED flash is pre-programmed by the host (power and
38 timeout) but controlled by the sensor through a strobe signal from the
39 sensor to the flash.
40
41 The sensor controls the flash duration and timing. This information
42 typically must be made available to the sensor.
43
44
45 LED flash as torch
46 ------------------
47
48 LED flash may be used as torch in conjunction with another use case
49 involving camera or individually.
50
51
52 .. _flash-control-id:
53
54 Flash Control IDs
55 -----------------
56
57 ``V4L2_CID_FLASH_CLASS (class)``
58 The FLASH class descriptor.
59
60 ``V4L2_CID_FLASH_LED_MODE (menu)``
61 Defines the mode of the flash LED, the high-power white LED attached
62 to the flash controller. Setting this control may not be possible in
63 presence of some faults. See V4L2_CID_FLASH_FAULT.
64
65
66 .. tabularcolumns:: |p{5.7cm}|p{11.8cm}|
67
68 .. flat-table::
69 :header-rows: 0
70 :stub-columns: 0
71
72 * - ``V4L2_FLASH_LED_MODE_NONE``
73 - Off.
74 * - ``V4L2_FLASH_LED_MODE_FLASH``
75 - Flash mode.
76 * - ``V4L2_FLASH_LED_MODE_TORCH``
77 - Torch mode.
78
79 See V4L2_CID_FLASH_TORCH_INTENSITY.
80
81
82
83 ``V4L2_CID_FLASH_STROBE_SOURCE (menu)``
84 Defines the source of the flash LED strobe.
85
86 .. tabularcolumns:: |p{7.5cm}|p{7.5cm}|
87
88 .. flat-table::
89 :header-rows: 0
90 :stub-columns: 0
91
92 * - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE``
93 - The flash strobe is triggered by using the
94 V4L2_CID_FLASH_STROBE control.
95 * - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL``
96 - The flash strobe is triggered by an external source. Typically
97 this is a sensor, which makes it possible to synchronise the
98 flash strobe start to exposure start.
99
100
101
102 ``V4L2_CID_FLASH_STROBE (button)``
103 Strobe flash. Valid when V4L2_CID_FLASH_LED_MODE is set to
104 V4L2_FLASH_LED_MODE_FLASH and V4L2_CID_FLASH_STROBE_SOURCE
105 is set to V4L2_FLASH_STROBE_SOURCE_SOFTWARE. Setting this
106 control may not be possible in presence of some faults. See
107 V4L2_CID_FLASH_FAULT.
108
109 ``V4L2_CID_FLASH_STROBE_STOP (button)``
110 Stop flash strobe immediately.
111
112 ``V4L2_CID_FLASH_STROBE_STATUS (boolean)``
113 Strobe status: whether the flash is strobing at the moment or not.
114 This is a read-only control.
115
116 ``V4L2_CID_FLASH_TIMEOUT (integer)``
117 Hardware timeout for flash. The flash strobe is stopped after this
118 period of time has passed from the start of the strobe.
119
120 ``V4L2_CID_FLASH_INTENSITY (integer)``
121 Intensity of the flash strobe when the flash LED is in flash mode
122 (V4L2_FLASH_LED_MODE_FLASH). The unit should be milliamps (mA)
123 if possible.
124
125 ``V4L2_CID_FLASH_TORCH_INTENSITY (integer)``
126 Intensity of the flash LED in torch mode
127 (V4L2_FLASH_LED_MODE_TORCH). The unit should be milliamps (mA)
128 if possible. Setting this control may not be possible in presence of
129 some faults. See V4L2_CID_FLASH_FAULT.
130
131 ``V4L2_CID_FLASH_INDICATOR_INTENSITY (integer)``
132 Intensity of the indicator LED. The indicator LED may be fully
133 independent of the flash LED. The unit should be microamps (uA) if
134 possible.
135
136 ``V4L2_CID_FLASH_FAULT (bitmask)``
137 Faults related to the flash. The faults tell about specific problems
138 in the flash chip itself or the LEDs attached to it. Faults may
139 prevent further use of some of the flash controls. In particular,
140 V4L2_CID_FLASH_LED_MODE is set to V4L2_FLASH_LED_MODE_NONE
141 if the fault affects the flash LED. Exactly which faults have such
142 an effect is chip dependent. Reading the faults resets the control
143 and returns the chip to a usable state if possible.
144
145 .. tabularcolumns:: |p{8.4cm}|p{9.1cm}|
146
147 .. flat-table::
148 :header-rows: 0
149 :stub-columns: 0
150
151 * - ``V4L2_FLASH_FAULT_OVER_VOLTAGE``
152 - Flash controller voltage to the flash LED has exceeded the limit
153 specific to the flash controller.
154 * - ``V4L2_FLASH_FAULT_TIMEOUT``
155 - The flash strobe was still on when the timeout set by the user ---
156 V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash
157 controllers may set this in all such conditions.
158 * - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE``
159 - The flash controller has overheated.
160 * - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT``
161 - The short circuit protection of the flash controller has been
162 triggered.
163 * - ``V4L2_FLASH_FAULT_OVER_CURRENT``
164 - Current in the LED power supply has exceeded the limit specific to
165 the flash controller.
166 * - ``V4L2_FLASH_FAULT_INDICATOR``
167 - The flash controller has detected a short or open circuit
168 condition on the indicator LED.
169 * - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE``
170 - Flash controller voltage to the flash LED has been below the
171 minimum limit specific to the flash controller.
172 * - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE``
173 - The input voltage of the flash controller is below the limit under
174 which strobing the flash at full current will not be possible.The
175 condition persists until this flag is no longer set.
176 * - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE``
177 - The temperature of the LED has exceeded its allowed upper limit.
178
179
180
181 ``V4L2_CID_FLASH_CHARGE (boolean)``
182 Enable or disable charging of the xenon flash capacitor.
183
184 ``V4L2_CID_FLASH_READY (boolean)``
185 Is the flash ready to strobe? Xenon flashes require their capacitors
186 charged before strobing. LED flashes often require a cooldown period
187 after strobe during which another strobe will not be possible. This
188 is a read-only control.
189

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Flash controller와 동기화 방식

1-51

V4L2 flash 제어는 digital camera에서 사용하는 flash controller에 공통 접근 방법을 제공합니다. LED와 xenon flash를 모두 표현할 수 있지만 문서 작성 시점에는 이 interface를 쓰는 xenon driver가 없습니다.

Unsynchronised LED flash, 즉 software strobe에서는 host가 sensor exposure 시작 전에 flash를 켜고 exposure 종료 뒤 꺼야 합니다. Flash timing 전체 책임이 host에 있으며 Nokia N900이 예입니다.

Synchronised LED flash, 즉 hardware strobe에서는 host가 power와 timeout을 미리 program하지만 sensor가 flash로 보내는 strobe signal로 시작과 duration을 제어합니다. Sensor가 timing 정보를 사용할 수 있어야 합니다.

LED flash는 camera 촬영과 함께 또는 독립적인 torch로 사용할 수 있습니다.

지원 사용 사례
항목한국어 설명
Software strobeHost가 exposure 전후에 직접 enable/disable하고 timing을 책임집니다.
Hardware strobeHost가 power·timeout을 설정하고 sensor의 external strobe가 exposure와 동기화합니다.
TorchLED를 지속광으로 사용하며 촬영과 함께 또는 독립적으로 동작합니다.

Strobe timing의 소유자와 LED 동작을 구분합니다.

.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later

.. _flash-controls:

***********************
Flash Control Reference
***********************

The V4L2 flash controls are intended to provide generic access to flash
controller devices. Flash controller devices are typically used in
digital cameras.

The interface can support both LED and xenon flash devices. As of
writing this, there is no xenon flash driver using this interface.


.. _flash-controls-use-cases:

Supported use cases
===================


Unsynchronised LED flash (software strobe)
------------------------------------------

Unsynchronised LED flash is controlled directly by the host as the
sensor. The flash must be enabled by the host before the exposure of the
image starts and disabled once it ends. The host is fully responsible
for the timing of the flash.

Example of such device: Nokia N900.


Synchronised LED flash (hardware strobe)
----------------------------------------

The synchronised LED flash is pre-programmed by the host (power and
timeout) but controlled by the sensor through a strobe signal from the
sensor to the flash.

The sensor controls the flash duration and timing. This information
typically must be made available to the sensor.


LED flash as torch
------------------

LED flash may be used as torch in conjunction with another use case
involving camera or individually.

LED mode, strobe, intensity와 fault

52-180

`V4L2_CID_FLASH_CLASS`는 FLASH class descriptor입니다. `V4L2_CID_FLASH_LED_MODE`는 high-power white LED를 off, flash, torch mode로 설정합니다. 일부 fault가 있으면 mode 변경이 거부될 수 있습니다.

LED mode
항목한국어 설명
`V4L2_FLASH_LED_MODE_NONE`Flash LED를 끕니다.
`V4L2_FLASH_LED_MODE_FLASH`짧은 고출력 strobe를 위한 flash mode입니다.
`V4L2_FLASH_LED_MODE_TORCH`지속광 torch mode입니다.

Torch intensity는 torch mode에서 별도 제어합니다.

`V4L2_CID_FLASH_STROBE_SOURCE`는 software button 또는 sensor 같은 external source 중 strobe trigger를 선택합니다. External source를 쓰면 exposure 시작과 flash 시작을 하드웨어로 동기화할 수 있습니다.

Strobe source
항목한국어 설명
`V4L2_FLASH_STROBE_SOURCE_SOFTWARE``V4L2_CID_FLASH_STROBE` button으로 strobe를 시작합니다.
`V4L2_FLASH_STROBE_SOURCE_EXTERNAL`보통 camera sensor가 보내는 외부 신호로 strobe를 시작합니다.

Software source에서는 STROBE button이 유효하고 external source에서는 외부 신호가 시작합니다.

`V4L2_CID_FLASH_STROBE`는 LED mode가 FLASH이고 source가 SOFTWARE일 때 strobe를 시작합니다. `STROBE_STOP`은 즉시 중단하고 read-only `STROBE_STATUS`는 현재 발광 중인지 알려 줍니다.

`V4L2_CID_FLASH_TIMEOUT`은 strobe 시작 뒤 hardware가 자동으로 끄는 시간을 설정합니다. `FLASH_INTENSITY`와 `TORCH_INTENSITY`는 가능하면 mA 단위이고 indicator LED intensity는 가능하면 uA 단위입니다.

`V4L2_CID_FLASH_FAULT`는 controller 또는 LED의 고장 bitmask입니다. Fault는 일부 제어의 사용을 막을 수 있고 flash LED에 영향을 주면 mode가 NONE으로 바뀝니다. Fault를 읽으면 control이 reset되고 가능하면 chip이 다시 사용 가능한 상태로 돌아갑니다.

Flash fault bit
항목한국어 설명
`V4L2_FLASH_FAULT_OVER_VOLTAGE`Flash LED 공급 전압이 controller 한계를 넘었습니다.
`V4L2_FLASH_FAULT_TIMEOUT`사용자가 설정한 timeout이 끝날 때까지 strobe가 켜져 있었습니다.
`V4L2_FLASH_FAULT_OVER_TEMPERATURE`Flash controller가 과열되었습니다.
`V4L2_FLASH_FAULT_SHORT_CIRCUIT`Controller의 short-circuit 보호가 동작했습니다.
`V4L2_FLASH_FAULT_OVER_CURRENT`LED power supply current가 controller 한계를 넘었습니다.
`V4L2_FLASH_FAULT_INDICATOR`Indicator LED에서 short 또는 open circuit을 감지했습니다.
`V4L2_FLASH_FAULT_UNDER_VOLTAGE`Flash LED 공급 전압이 최소 한계보다 낮습니다.
`V4L2_FLASH_FAULT_INPUT_VOLTAGE`Input voltage가 낮아 full-current strobe가 불가능합니다. 조건이 사라질 때까지 bit가 유지됩니다.
`V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE`LED 자체 온도가 허용 상한을 넘었습니다.

실제 fault가 flash 동작을 막는 범위는 chip-dependent입니다.

Software strobe
Fault bitmask 확인LED mode를 FLASH로 설정Strobe source를 SOFTWARE로 설정Intensity와 timeout 설정Exposure 직전에 STROBE button 실행STATUS 또는 sensor timing 확인필요하면 STROBE_STOP 실행

Mode와 source 조건을 만족한 뒤 timeout과 fault를 감시합니다.

.. _flash-control-id:

Flash Control IDs
-----------------

``V4L2_CID_FLASH_CLASS (class)``
    The FLASH class descriptor.

``V4L2_CID_FLASH_LED_MODE (menu)``
    Defines the mode of the flash LED, the high-power white LED attached
    to the flash controller. Setting this control may not be possible in
    presence of some faults. See V4L2_CID_FLASH_FAULT.


.. tabularcolumns:: |p{5.7cm}|p{11.8cm}|

.. flat-table::
    :header-rows:  0
    :stub-columns: 0

    * - ``V4L2_FLASH_LED_MODE_NONE``
      - Off.
    * - ``V4L2_FLASH_LED_MODE_FLASH``
      - Flash mode.
    * - ``V4L2_FLASH_LED_MODE_TORCH``
      - Torch mode.

        See V4L2_CID_FLASH_TORCH_INTENSITY.



``V4L2_CID_FLASH_STROBE_SOURCE (menu)``
    Defines the source of the flash LED strobe.

.. tabularcolumns:: |p{7.5cm}|p{7.5cm}|

.. flat-table::
    :header-rows:  0
    :stub-columns: 0

    * - ``V4L2_FLASH_STROBE_SOURCE_SOFTWARE``
      - The flash strobe is triggered by using the
	V4L2_CID_FLASH_STROBE control.
    * - ``V4L2_FLASH_STROBE_SOURCE_EXTERNAL``
      - The flash strobe is triggered by an external source. Typically
	this is a sensor, which makes it possible to synchronise the
	flash strobe start to exposure start.



``V4L2_CID_FLASH_STROBE (button)``
    Strobe flash. Valid when V4L2_CID_FLASH_LED_MODE is set to
    V4L2_FLASH_LED_MODE_FLASH and V4L2_CID_FLASH_STROBE_SOURCE
    is set to V4L2_FLASH_STROBE_SOURCE_SOFTWARE. Setting this
    control may not be possible in presence of some faults. See
    V4L2_CID_FLASH_FAULT.

``V4L2_CID_FLASH_STROBE_STOP (button)``
    Stop flash strobe immediately.

``V4L2_CID_FLASH_STROBE_STATUS (boolean)``
    Strobe status: whether the flash is strobing at the moment or not.
    This is a read-only control.

``V4L2_CID_FLASH_TIMEOUT (integer)``
    Hardware timeout for flash. The flash strobe is stopped after this
    period of time has passed from the start of the strobe.

``V4L2_CID_FLASH_INTENSITY (integer)``
    Intensity of the flash strobe when the flash LED is in flash mode
    (V4L2_FLASH_LED_MODE_FLASH). The unit should be milliamps (mA)
    if possible.

``V4L2_CID_FLASH_TORCH_INTENSITY (integer)``
    Intensity of the flash LED in torch mode
    (V4L2_FLASH_LED_MODE_TORCH). The unit should be milliamps (mA)
    if possible. Setting this control may not be possible in presence of
    some faults. See V4L2_CID_FLASH_FAULT.

``V4L2_CID_FLASH_INDICATOR_INTENSITY (integer)``
    Intensity of the indicator LED. The indicator LED may be fully
    independent of the flash LED. The unit should be microamps (uA) if
    possible.

``V4L2_CID_FLASH_FAULT (bitmask)``
    Faults related to the flash. The faults tell about specific problems
    in the flash chip itself or the LEDs attached to it. Faults may
    prevent further use of some of the flash controls. In particular,
    V4L2_CID_FLASH_LED_MODE is set to V4L2_FLASH_LED_MODE_NONE
    if the fault affects the flash LED. Exactly which faults have such
    an effect is chip dependent. Reading the faults resets the control
    and returns the chip to a usable state if possible.

.. tabularcolumns:: |p{8.4cm}|p{9.1cm}|

.. flat-table::
    :header-rows:  0
    :stub-columns: 0

    * - ``V4L2_FLASH_FAULT_OVER_VOLTAGE``
      - Flash controller voltage to the flash LED has exceeded the limit
	specific to the flash controller.
    * - ``V4L2_FLASH_FAULT_TIMEOUT``
      - The flash strobe was still on when the timeout set by the user ---
	V4L2_CID_FLASH_TIMEOUT control --- has expired. Not all flash
	controllers may set this in all such conditions.
    * - ``V4L2_FLASH_FAULT_OVER_TEMPERATURE``
      - The flash controller has overheated.
    * - ``V4L2_FLASH_FAULT_SHORT_CIRCUIT``
      - The short circuit protection of the flash controller has been
	triggered.
    * - ``V4L2_FLASH_FAULT_OVER_CURRENT``
      - Current in the LED power supply has exceeded the limit specific to
	the flash controller.
    * - ``V4L2_FLASH_FAULT_INDICATOR``
      - The flash controller has detected a short or open circuit
	condition on the indicator LED.
    * - ``V4L2_FLASH_FAULT_UNDER_VOLTAGE``
      - Flash controller voltage to the flash LED has been below the
	minimum limit specific to the flash controller.
    * - ``V4L2_FLASH_FAULT_INPUT_VOLTAGE``
      - The input voltage of the flash controller is below the limit under
	which strobing the flash at full current will not be possible.The
	condition persists until this flag is no longer set.
    * - ``V4L2_FLASH_FAULT_LED_OVER_TEMPERATURE``
      - The temperature of the LED has exceeded its allowed upper limit.


Xenon charge와 flash readiness

181-188

`V4L2_CID_FLASH_CHARGE`는 xenon flash capacitor 충전을 enable 또는 disable합니다.

Read-only `V4L2_CID_FLASH_READY`는 strobe 준비가 되었는지 알려 줍니다. Xenon은 capacitor 충전이 끝나야 하고 LED flash는 이전 strobe 뒤 cooldown이 끝나야 다음 strobe가 가능합니다.

Ready 확인
Xenon이면 CHARGE enableREADY가 true가 될 때까지 대기LED이면 cooldown 완료 확인Strobe 시작

Flash 종류에 따라 charge 또는 cooldown을 기다린 뒤 strobe합니다.

``V4L2_CID_FLASH_CHARGE (boolean)``
    Enable or disable charging of the xenon flash capacitor.

``V4L2_CID_FLASH_READY (boolean)``
    Is the flash ready to strobe? Xenon flashes require their capacitors
    charged before strobing. LED flashes often require a cooldown period
    after strobe during which another strobe will not be possible. This
    is a read-only control.