Merge commit '81fd23e2b3ccf71c807e671444e8accaba98ca53' of https://git.pengutronix...
[linux-2.6-microblaze.git] / Documentation / userspace-api / media / glossary.rst
1 .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
2
3 ========
4 Glossary
5 ========
6
7 .. note::
8
9    The goal of this section is to standardize the terms used within the media
10    userspace API documentation. This is Work In Progress.
11
12 .. Please keep the glossary entries in alphabetical order
13
14 .. glossary::
15
16     Bridge Driver
17         A :term:`Device Driver` that implements the main logic to talk with
18         media hardware.
19
20     CEC API
21         **Consumer Electronics Control API**
22
23         An API designed to receive and transmit data via an HDMI
24         CEC interface.
25
26         See :ref:`cec`.
27
28     Device Driver
29         Part of the Linux Kernel that implements support for a hardware
30         component.
31
32     Device Node
33         A character device node in the file system used to control and
34         transfer data in and out of a Kernel driver.
35
36     Digital TV API
37         **Previously known as DVB API**
38
39         An API designed to control a subset of the :term:`Media Hardware`
40         that implements digital TV (e. g. DVB, ATSC, ISDB, etc).
41
42         See :ref:`dvbapi`.
43
44     DSP
45         **Digital Signal Processor**
46
47         A specialized :term:`Microprocessor`, with its architecture
48         optimized for the operational needs of digital signal processing.
49
50     FPGA
51         **Field-programmable Gate Array**
52
53         An :term:`IC` circuit designed to be configured by a customer or
54         a designer after manufacturing.
55
56         See https://en.wikipedia.org/wiki/Field-programmable_gate_array.
57
58     Hardware Component
59         A subset of the :term:`Media Hardware`. For example an :term:`I²C` or
60         :term:`SPI` device, or an :term:`IP Block` inside an
61         :term:`SoC` or :term:`FPGA`.
62
63     Hardware Peripheral
64         A group of :term:`hardware components <Hardware Component>` that
65         together make a larger user-facing functional peripheral. For
66         instance, the :term:`SoC` :term:`ISP` :term:`IP Block`
67         and the external camera sensors together make a camera hardware
68         peripheral.
69
70         Also known as :term:`Peripheral`.
71
72     I²C
73         **Inter-Integrated Circuit**
74
75         A  multi-master, multi-slave, packet switched, single-ended,
76         serial computer bus used to control some hardware components
77         like sub-device hardware components.
78
79         See http://www.nxp.com/docs/en/user-guide/UM10204.pdf.
80
81     IC
82         **Integrated circuit**
83
84         A set of electronic circuits on one small flat piece of
85         semiconductor material, normally silicon.
86
87         Also known as chip.
88
89     IP Block
90         **Intellectual property core**
91
92         In electronic design a semiconductor intellectual property core,
93         is a reusable unit of logic, cell, or integrated circuit layout
94         design that is the intellectual property of one party.
95         IP Blocks may be licensed to another party or can be owned
96         and used by a single party alone.
97
98         See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core).
99
100     ISP
101         **Image Signal Processor**
102
103         A specialized processor that implements a set of algorithms for
104         processing image data. ISPs may implement algorithms for lens
105         shading correction, demosaicing, scaling and pixel format conversion
106         as well as produce statistics for the use of the control
107         algorithms (e.g. automatic exposure, white balance and focus).
108
109     Media API
110         A set of userspace APIs used to control the media hardware. It is
111         composed by:
112
113           - :term:`CEC API`;
114           - :term:`Digital TV API`;
115           - :term:`MC API`;
116           - :term:`RC API`; and
117           - :term:`V4L2 API`.
118
119         See Documentation/userspace-api/media/index.rst.
120
121     MC API
122         **Media Controller API**
123
124         An API designed to expose and control the relationships between
125         multimedia devices and sub-devices.
126
127         See :ref:`media_controller`.
128
129     MC-centric
130         :term:`V4L2 Hardware` device driver that requires :term:`MC API`.
131
132         Such drivers have ``V4L2_CAP_IO_MC`` device_caps field set
133         (see :ref:`VIDIOC_QUERYCAP`).
134
135         See :ref:`v4l2_hardware_control` for more details.
136
137     Media Hardware
138         Subset of the hardware that is supported by the Linux Media API.
139
140         This includes audio and video capture and playback hardware,
141         digital and analog TV, camera sensors, ISPs, remote controllers,
142         codecs, HDMI Consumer Electronics Control, HDMI capture, etc.
143
144     Microprocessor
145         Electronic circuitry that carries out the instructions of a
146         computer program by performing the basic arithmetic, logical,
147         control and input/output (I/O) operations specified by the
148         instructions on a single integrated circuit.
149
150     Peripheral
151         The same as :term:`Hardware Peripheral`.
152
153     RC API
154         **Remote Controller API**
155
156         An API designed to receive and transmit data from remote
157         controllers.
158
159         See :ref:`remote_controllers`.
160
161     SMBus
162         A subset of I²C, which defines a stricter usage of the bus.
163
164     SPI
165         **Serial Peripheral Interface Bus**
166
167         Synchronous serial communication interface specification used for
168         short distance communication, primarily in embedded systems.
169
170     SoC
171         **System on a Chip**
172
173         An integrated circuit that integrates all components of a computer
174         or other electronic systems.
175
176     V4L2 API
177         **V4L2 userspace API**
178
179         The userspace API defined in :ref:`v4l2spec`, which is used to
180         control a V4L2 hardware.
181
182     V4L2 Device Node
183         A :term:`Device Node` that is associated to a V4L driver.
184
185         The V4L2 device node naming is specified at :ref:`v4l2_device_naming`.
186
187     V4L2 Hardware
188         Part of the media hardware which is supported by the :term:`V4L2 API`.
189
190     V4L2 Sub-device
191         V4L2 hardware components that aren't controlled by a
192         :term:`Bridge Driver`. See :ref:`subdev`.
193
194     Video-node-centric
195         V4L2 device driver that doesn't require a media controller to be used.
196
197         Such drivers have the ``V4L2_CAP_IO_MC`` device_caps field unset
198         (see :ref:`VIDIOC_QUERYCAP`).
199
200     V4L2 Sub-device API
201         Part of the :term:`V4L2 API` which control
202         :term:`V4L2 sub-devices <V4L2 Sub-device>`, like sensors,
203         HDMI receivers, scalers, deinterlacers.
204
205         See :ref:`v4l2_hardware_control` for more details.