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