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