162306a36Sopenharmony_ci.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later 262306a36Sopenharmony_ci 362306a36Sopenharmony_ci======== 462306a36Sopenharmony_ciGlossary 562306a36Sopenharmony_ci======== 662306a36Sopenharmony_ci 762306a36Sopenharmony_ci.. note:: 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci The goal of this section is to standardize the terms used within the media 1062306a36Sopenharmony_ci userspace API documentation. This is Work In Progress. 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci.. Please keep the glossary entries in alphabetical order 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci.. glossary:: 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci Bridge Driver 1762306a36Sopenharmony_ci A :term:`Device Driver` that implements the main logic to talk with 1862306a36Sopenharmony_ci media hardware. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci CEC API 2162306a36Sopenharmony_ci **Consumer Electronics Control API** 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci An API designed to receive and transmit data via an HDMI 2462306a36Sopenharmony_ci CEC interface. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ci See :ref:`cec`. 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ci Device Driver 2962306a36Sopenharmony_ci Part of the Linux Kernel that implements support for a hardware 3062306a36Sopenharmony_ci component. 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci Device Node 3362306a36Sopenharmony_ci A character device node in the file system used to control and 3462306a36Sopenharmony_ci transfer data in and out of a Kernel driver. 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci Digital TV API 3762306a36Sopenharmony_ci **Previously known as DVB API** 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci An API designed to control a subset of the :term:`Media Hardware` 4062306a36Sopenharmony_ci that implements digital TV (e. g. DVB, ATSC, ISDB, etc). 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci See :ref:`dvbapi`. 4362306a36Sopenharmony_ci 4462306a36Sopenharmony_ci DSP 4562306a36Sopenharmony_ci **Digital Signal Processor** 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ci A specialized :term:`Microprocessor`, with its architecture 4862306a36Sopenharmony_ci optimized for the operational needs of digital signal processing. 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci FPGA 5162306a36Sopenharmony_ci **Field-programmable Gate Array** 5262306a36Sopenharmony_ci 5362306a36Sopenharmony_ci An :term:`IC` circuit designed to be configured by a customer or 5462306a36Sopenharmony_ci a designer after manufacturing. 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci See https://en.wikipedia.org/wiki/Field-programmable_gate_array. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_ci Hardware Component 5962306a36Sopenharmony_ci A subset of the :term:`Media Hardware`. For example an :term:`I²C` or 6062306a36Sopenharmony_ci :term:`SPI` device, or an :term:`IP Block` inside an 6162306a36Sopenharmony_ci :term:`SoC` or :term:`FPGA`. 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci Hardware Peripheral 6462306a36Sopenharmony_ci A group of :term:`hardware components <Hardware Component>` that 6562306a36Sopenharmony_ci together make a larger user-facing functional peripheral. For 6662306a36Sopenharmony_ci instance, the :term:`SoC` :term:`ISP` :term:`IP Block` 6762306a36Sopenharmony_ci and the external camera sensors together make a camera hardware 6862306a36Sopenharmony_ci peripheral. 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci Also known as :term:`Peripheral`. 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci I²C 7362306a36Sopenharmony_ci **Inter-Integrated Circuit** 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci A multi-master, multi-slave, packet switched, single-ended, 7662306a36Sopenharmony_ci serial computer bus used to control some hardware components 7762306a36Sopenharmony_ci like sub-device hardware components. 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci See http://www.nxp.com/docs/en/user-guide/UM10204.pdf. 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci IC 8262306a36Sopenharmony_ci **Integrated circuit** 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci A set of electronic circuits on one small flat piece of 8562306a36Sopenharmony_ci semiconductor material, normally silicon. 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci Also known as chip. 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci IP Block 9062306a36Sopenharmony_ci **Intellectual property core** 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci In electronic design a semiconductor intellectual property core, 9362306a36Sopenharmony_ci is a reusable unit of logic, cell, or integrated circuit layout 9462306a36Sopenharmony_ci design that is the intellectual property of one party. 9562306a36Sopenharmony_ci IP Blocks may be licensed to another party or can be owned 9662306a36Sopenharmony_ci and used by a single party alone. 9762306a36Sopenharmony_ci 9862306a36Sopenharmony_ci See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core). 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci ISP 10162306a36Sopenharmony_ci **Image Signal Processor** 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_ci A specialized processor that implements a set of algorithms for 10462306a36Sopenharmony_ci processing image data. ISPs may implement algorithms for lens 10562306a36Sopenharmony_ci shading correction, demosaicing, scaling and pixel format conversion 10662306a36Sopenharmony_ci as well as produce statistics for the use of the control 10762306a36Sopenharmony_ci algorithms (e.g. automatic exposure, white balance and focus). 10862306a36Sopenharmony_ci 10962306a36Sopenharmony_ci Media API 11062306a36Sopenharmony_ci A set of userspace APIs used to control the media hardware. It is 11162306a36Sopenharmony_ci composed by: 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci - :term:`CEC API`; 11462306a36Sopenharmony_ci - :term:`Digital TV API`; 11562306a36Sopenharmony_ci - :term:`MC API`; 11662306a36Sopenharmony_ci - :term:`RC API`; and 11762306a36Sopenharmony_ci - :term:`V4L2 API`. 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci See Documentation/userspace-api/media/index.rst. 12062306a36Sopenharmony_ci 12162306a36Sopenharmony_ci MC API 12262306a36Sopenharmony_ci **Media Controller API** 12362306a36Sopenharmony_ci 12462306a36Sopenharmony_ci An API designed to expose and control the relationships between 12562306a36Sopenharmony_ci multimedia devices and sub-devices. 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci See :ref:`media_controller`. 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci MC-centric 13062306a36Sopenharmony_ci :term:`V4L2 Hardware` device driver that requires :term:`MC API`. 13162306a36Sopenharmony_ci 13262306a36Sopenharmony_ci Such drivers have ``V4L2_CAP_IO_MC`` device_caps field set 13362306a36Sopenharmony_ci (see :ref:`VIDIOC_QUERYCAP`). 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci See :ref:`v4l2_hardware_control` for more details. 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci Media Hardware 13862306a36Sopenharmony_ci Subset of the hardware that is supported by the Linux Media API. 13962306a36Sopenharmony_ci 14062306a36Sopenharmony_ci This includes audio and video capture and playback hardware, 14162306a36Sopenharmony_ci digital and analog TV, camera sensors, ISPs, remote controllers, 14262306a36Sopenharmony_ci codecs, HDMI Consumer Electronics Control, HDMI capture, etc. 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci Microprocessor 14562306a36Sopenharmony_ci Electronic circuitry that carries out the instructions of a 14662306a36Sopenharmony_ci computer program by performing the basic arithmetic, logical, 14762306a36Sopenharmony_ci control and input/output (I/O) operations specified by the 14862306a36Sopenharmony_ci instructions on a single integrated circuit. 14962306a36Sopenharmony_ci 15062306a36Sopenharmony_ci Peripheral 15162306a36Sopenharmony_ci The same as :term:`Hardware Peripheral`. 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci RC API 15462306a36Sopenharmony_ci **Remote Controller API** 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci An API designed to receive and transmit data from remote 15762306a36Sopenharmony_ci controllers. 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci See :ref:`remote_controllers`. 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci SMBus 16262306a36Sopenharmony_ci A subset of I²C, which defines a stricter usage of the bus. 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci SPI 16562306a36Sopenharmony_ci **Serial Peripheral Interface Bus** 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci Synchronous serial communication interface specification used for 16862306a36Sopenharmony_ci short distance communication, primarily in embedded systems. 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci SoC 17162306a36Sopenharmony_ci **System on a Chip** 17262306a36Sopenharmony_ci 17362306a36Sopenharmony_ci An integrated circuit that integrates all components of a computer 17462306a36Sopenharmony_ci or other electronic systems. 17562306a36Sopenharmony_ci 17662306a36Sopenharmony_ci V4L2 API 17762306a36Sopenharmony_ci **V4L2 userspace API** 17862306a36Sopenharmony_ci 17962306a36Sopenharmony_ci The userspace API defined in :ref:`v4l2spec`, which is used to 18062306a36Sopenharmony_ci control a V4L2 hardware. 18162306a36Sopenharmony_ci 18262306a36Sopenharmony_ci V4L2 Device Node 18362306a36Sopenharmony_ci A :term:`Device Node` that is associated to a V4L driver. 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci The V4L2 device node naming is specified at :ref:`v4l2_device_naming`. 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci V4L2 Hardware 18862306a36Sopenharmony_ci Part of the media hardware which is supported by the :term:`V4L2 API`. 18962306a36Sopenharmony_ci 19062306a36Sopenharmony_ci V4L2 Sub-device 19162306a36Sopenharmony_ci V4L2 hardware components that aren't controlled by a 19262306a36Sopenharmony_ci :term:`Bridge Driver`. See :ref:`subdev`. 19362306a36Sopenharmony_ci 19462306a36Sopenharmony_ci Video-node-centric 19562306a36Sopenharmony_ci V4L2 device driver that doesn't require a media controller to be used. 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci Such drivers have the ``V4L2_CAP_IO_MC`` device_caps field unset 19862306a36Sopenharmony_ci (see :ref:`VIDIOC_QUERYCAP`). 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci V4L2 Sub-device API 20162306a36Sopenharmony_ci Part of the :term:`V4L2 API` which control 20262306a36Sopenharmony_ci :term:`V4L2 sub-devices <V4L2 Sub-device>`, like sensors, 20362306a36Sopenharmony_ci HDMI receivers, scalers, deinterlacers. 20462306a36Sopenharmony_ci 20562306a36Sopenharmony_ci See :ref:`v4l2_hardware_control` for more details. 206