요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
========
Glossary
========
.. note::
The goal of this section is to standardize the terms used within the media
userspace API documentation. This is Work In Progress.
.. Please keep the glossary entries in alphabetical order
.. glossary::
Bridge Driver
A :term:`Device Driver` that implements the main logic to talk with
media hardware.
CEC API
**Consumer Electronics Control API**
An API designed to receive and transmit data via an HDMI
CEC interface.
See :ref:`cec`.
Data Unit
Unit of data transported by a bus. On parallel buses, the data unit
consists of one or more related samples while on serial buses the data
unit is logical. If the data unit is image data, it may also be called a
pixel.
Device Driver
Part of the Linux Kernel that implements support for a hardware
component.
Device Node
A character device node in the file system used to control and
transfer data in and out of a Kernel driver.
Digital TV API
**Previously known as DVB API**
An API designed to control a subset of the :term:`Media Hardware`
that implements digital TV (e. g. DVB, ATSC, ISDB, etc).
See :ref:`dvbapi`.
DSP
**Digital Signal Processor**
A specialized :term:`Microprocessor`, with its architecture
optimized for the operational needs of digital signal processing.
FPGA
**Field-programmable Gate Array**
An :term:`IC` circuit designed to be configured by a customer or
a designer after manufacturing.
See https://en.wikipedia.org/wiki/Field-programmable_gate_array.
Hardware Component
A subset of the :term:`Media Hardware`. For example an :term:`I²C` or
:term:`SPI` device, or an :term:`IP Block` inside an
:term:`SoC` or :term:`FPGA`.
Hardware Peripheral
A group of :term:`hardware components <Hardware Component>` that
together make a larger user-facing functional peripheral. For
instance, the :term:`SoC` :term:`ISP` :term:`IP Block`
and the external camera sensors together make a camera hardware
peripheral.
Also known as :term:`Peripheral`.
I²C
**Inter-Integrated Circuit**
A multi-master, multi-slave, packet switched, single-ended,
serial computer bus used to control some hardware components
like sub-device hardware components.
See http://www.nxp.com/docs/en/user-guide/UM10204.pdf.
IC
**Integrated circuit**
A set of electronic circuits on one small flat piece of
semiconductor material, normally silicon.
Also known as chip.
IP Block
**Intellectual property core**
In electronic design a semiconductor intellectual property core,
is a reusable unit of logic, cell, or integrated circuit layout
design that is the intellectual property of one party.
IP Blocks may be licensed to another party or can be owned
and used by a single party alone.
See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core).
ISP
**Image Signal Processor**
A specialized processor that implements a set of algorithms for
processing image data. ISPs may implement algorithms for lens
shading correction, demosaicing, scaling and pixel format conversion
as well as produce statistics for the use of the control
algorithms (e.g. automatic exposure, white balance and focus).
Media API
A set of userspace APIs used to control the media hardware. It is
composed by:
- :term:`CEC API`;
- :term:`Digital TV API`;
- :term:`MC API`;
- :term:`RC API`; and
- :term:`V4L2 API`.
See Documentation/userspace-api/media/index.rst.
MC API
**Media Controller API**
An API designed to expose and control the relationships between
multimedia devices and sub-devices.
See :ref:`media_controller`.
MC-centric
:term:`V4L2 Hardware` device driver that requires :term:`MC API`.
Such drivers have ``V4L2_CAP_IO_MC`` device_caps field set
(see :ref:`VIDIOC_QUERYCAP`).
See :ref:`v4l2_hardware_control` for more details.
Media Hardware
Subset of the hardware that is supported by the Linux Media API.
This includes audio and video capture and playback hardware,
digital and analog TV, camera sensors, ISPs, remote controllers,
codecs, HDMI Consumer Electronics Control, HDMI capture, etc.
Microprocessor
Electronic circuitry that carries out the instructions of a
computer program by performing the basic arithmetic, logical,
control and input/output (I/O) operations specified by the
instructions on a single integrated circuit.
Peripheral
The same as :term:`Hardware Peripheral`.
RC API
**Remote Controller API**
An API designed to receive and transmit data from remote
controllers.
See :ref:`remote_controllers`.
SMBus
A subset of I²C, which defines a stricter usage of the bus.
SPI
**Serial Peripheral Interface Bus**
Synchronous serial communication interface specification used for
short distance communication, primarily in embedded systems.
SoC
**System on a Chip**
An integrated circuit that integrates all components of a computer
or other electronic systems.
Stream
A distinct flow of data (image data or metadata) from an initial source
to a final sink. The initial source may be e.g. an image sensor and the
final sink e.g. a memory buffer.
V4L2 API
**V4L2 userspace API**
The userspace API defined in :ref:`v4l2spec`, which is used to
control a V4L2 hardware.
V4L2 Device Node
A :term:`Device Node` that is associated to a V4L driver.
The V4L2 device node naming is specified at :ref:`v4l2_device_naming`.
V4L2 Hardware
Part of the media hardware which is supported by the :term:`V4L2 API`.
V4L2 Sub-device
V4L2 hardware components that aren't controlled by a
:term:`Bridge Driver`. See :ref:`subdev`.
Video-node-centric
V4L2 device driver that doesn't require a media controller to be used.
Such drivers have the ``V4L2_CAP_IO_MC`` device_caps field unset
(see :ref:`VIDIOC_QUERYCAP`).
V4L2 Sub-device API
Part of the :term:`V4L2 API` which control
:term:`V4L2 sub-devices <V4L2 Sub-device>`, like sensors,
HDMI receivers, scalers, deinterlacers.
See :ref:`v4l2_hardware_control` for more details.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
용어집의 목적과 정렬 규칙
1-14이 문서는 `GPL-2.0 OR GFDL-1.1-no-invariants-or-later`로 식별됩니다. 이 절의 목적은 Media userspace API 문서에서 사용하는 용어를 표준화하는 것이며, 현재도 작성 중인 작업입니다.
원문의 관리 주석은 용어집 항목을 알파벳순으로 유지하도록 요구합니다. 아래 번역도 원문의 항목 순서와 상호 참조 이름을 그대로 따릅니다.
원문 용어와 한국어 핵심 의미를 대응시킵니다. API 이름, capability와 Sphinx 참조 이름은 번역하지 않습니다.
.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
========
Glossary
========
.. note::
The goal of this section is to standardize the terms used within the media
userspace API documentation. This is Work In Progress.
.. Please keep the glossary entries in alphabetical order
.. glossary::
Bridge Driver부터 Device Node까지
15-42**Bridge Driver**는 media hardware와 통신하기 위한 주 논리를 구현하는 `Device Driver`입니다.
**CEC API**는 **Consumer Electronics Control API**의 약자입니다. HDMI CEC interface를 통해 데이터를 수신하고 전송하도록 설계되었으며 자세한 내용은 `cec` 참조를 봅니다.
**Data Unit**은 bus가 운반하는 데이터의 단위입니다. Parallel bus에서는 서로 관련된 sample 하나 이상으로 구성되지만 serial bus에서는 논리적인 단위입니다. 이 단위가 image data라면 pixel이라고도 부릅니다.
**Device Driver**는 hardware component 지원을 구현하는 Linux Kernel의 일부입니다. **Device Node**는 Kernel driver를 제어하고 driver 안팎으로 데이터를 전송하는 데 쓰는 file system의 character device node입니다.
Bridge Driver
A :term:`Device Driver` that implements the main logic to talk with
media hardware.
CEC API
**Consumer Electronics Control API**
An API designed to receive and transmit data via an HDMI
CEC interface.
See :ref:`cec`.
Data Unit
Unit of data transported by a bus. On parallel buses, the data unit
consists of one or more related samples while on serial buses the data
unit is logical. If the data unit is image data, it may also be called a
pixel.
Device Driver
Part of the Linux Kernel that implements support for a hardware
component.
Device Node
A character device node in the file system used to control and
transfer data in and out of a Kernel driver.
Digital TV API, DSP와 FPGA
43-64**Digital TV API**는 이전에 **DVB API**로 알려졌습니다. DVB, ATSC, ISDB 등을 구현하는 `Media Hardware` 부분집합을 제어하도록 설계된 API이며 자세한 내용은 `dvbapi` 참조에 있습니다.
**DSP**는 **Digital Signal Processor**의 약자입니다. Digital signal processing의 연산 요구에 맞게 architecture를 최적화한 특수 `Microprocessor`입니다.
**FPGA**는 **Field-programmable Gate Array**의 약자입니다. 제조한 뒤 customer나 designer가 구성할 수 있도록 설계된 `IC` 회로입니다.
FPGA에 대한 외부 참고 링크는 원문에 명시된 `https://en.wikipedia.org/wiki/Field-programmable_gate_array`입니다.
Digital TV API
**Previously known as DVB API**
An API designed to control a subset of the :term:`Media Hardware`
that implements digital TV (e. g. DVB, ATSC, ISDB, etc).
See :ref:`dvbapi`.
DSP
**Digital Signal Processor**
A specialized :term:`Microprocessor`, with its architecture
optimized for the operational needs of digital signal processing.
FPGA
**Field-programmable Gate Array**
An :term:`IC` circuit designed to be configured by a customer or
a designer after manufacturing.
See https://en.wikipedia.org/wiki/Field-programmable_gate_array.
Hardware Component부터 IP Block까지
65-106**Hardware Component**는 `Media Hardware`의 부분집합입니다. 예를 들어 `I²C` 또는 `SPI` device, `SoC`나 `FPGA` 안의 `IP Block`이 여기에 해당합니다.
**Hardware Peripheral**은 여러 `Hardware Component`가 함께 더 큰 사용자 대상 기능을 구성한 집합입니다. 예를 들어 `SoC`의 `ISP` `IP Block`과 외부 camera sensor를 합치면 camera hardware peripheral이 됩니다. **Peripheral**이라고도 부릅니다.
**I²C**는 **Inter-Integrated Circuit**의 약자입니다. Sub-device hardware component 같은 일부 hardware component를 제어하는 데 쓰는 multi-master, multi-slave, packet-switched, single-ended serial computer bus입니다.
I²C 규격 참고 링크는 `http://www.nxp.com/docs/en/user-guide/UM10204.pdf`입니다.
**IC**는 **Integrated circuit**의 약자입니다. 보통 silicon인 작고 평평한 semiconductor material 조각 위에 놓인 electronic circuit의 집합이며 chip이라고도 부릅니다.
**IP Block**은 **Intellectual property core**를 뜻합니다. Electronic design에서 한 당사자의 지식 재산인 재사용 가능한 logic, cell 또는 integrated circuit layout design 단위입니다. 다른 당사자에게 license할 수도 있고 한 당사자가 단독으로 소유하고 사용할 수도 있습니다. 참고 링크는 `https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core`입니다.
Hardware Component
A subset of the :term:`Media Hardware`. For example an :term:`I²C` or
:term:`SPI` device, or an :term:`IP Block` inside an
:term:`SoC` or :term:`FPGA`.
Hardware Peripheral
A group of :term:`hardware components <Hardware Component>` that
together make a larger user-facing functional peripheral. For
instance, the :term:`SoC` :term:`ISP` :term:`IP Block`
and the external camera sensors together make a camera hardware
peripheral.
Also known as :term:`Peripheral`.
I²C
**Inter-Integrated Circuit**
A multi-master, multi-slave, packet switched, single-ended,
serial computer bus used to control some hardware components
like sub-device hardware components.
See http://www.nxp.com/docs/en/user-guide/UM10204.pdf.
IC
**Integrated circuit**
A set of electronic circuits on one small flat piece of
semiconductor material, normally silicon.
Also known as chip.
IP Block
**Intellectual property core**
In electronic design a semiconductor intellectual property core,
is a reusable unit of logic, cell, or integrated circuit layout
design that is the intellectual property of one party.
IP Blocks may be licensed to another party or can be owned
and used by a single party alone.
See https://en.wikipedia.org/wiki/Semiconductor_intellectual_property_core).
ISP와 Media API 계층
107-150**ISP**는 **Image Signal Processor**의 약자입니다. Image data 처리 알고리즘 집합을 구현하는 특수 processor입니다. Lens shading correction, demosaicing, scaling, pixel format conversion을 구현할 수 있고 automatic exposure, white balance, focus 같은 control algorithm이 사용할 statistics도 만들 수 있습니다.
**Media API**는 media hardware를 제어하는 userspace API 집합입니다. `CEC API`, `Digital TV API`, `MC API`, `RC API`, `V4L2 API`의 다섯 부분으로 구성됩니다. 전체 색인은 `Documentation/userspace-api/media/index.rst`입니다.
Media userspace interface를 이루는 다섯 API를 원문의 순서대로 표시합니다.
**MC API**는 **Media Controller API**의 약자입니다. Multimedia device와 sub-device 사이의 관계를 노출하고 제어하도록 설계되었으며 `media_controller` 참조에서 설명합니다.
**MC-centric**은 `MC API`가 필요한 `V4L2 Hardware` device driver입니다. 이런 driver는 `device_caps` field에 `V4L2_CAP_IO_MC`를 설정합니다. `VIDIOC_QUERYCAP`과 `v4l2_hardware_control` 참조를 함께 봅니다.
**Media Hardware**는 Linux Media API가 지원하는 hardware 부분집합입니다. Audio/video capture와 playback hardware, digital/analog TV, camera sensor, ISP, remote controller, codec, HDMI Consumer Electronics Control, HDMI capture 등이 포함됩니다.
ISP
**Image Signal Processor**
A specialized processor that implements a set of algorithms for
processing image data. ISPs may implement algorithms for lens
shading correction, demosaicing, scaling and pixel format conversion
as well as produce statistics for the use of the control
algorithms (e.g. automatic exposure, white balance and focus).
Media API
A set of userspace APIs used to control the media hardware. It is
composed by:
- :term:`CEC API`;
- :term:`Digital TV API`;
- :term:`MC API`;
- :term:`RC API`; and
- :term:`V4L2 API`.
See Documentation/userspace-api/media/index.rst.
MC API
**Media Controller API**
An API designed to expose and control the relationships between
multimedia devices and sub-devices.
See :ref:`media_controller`.
MC-centric
:term:`V4L2 Hardware` device driver that requires :term:`MC API`.
Such drivers have ``V4L2_CAP_IO_MC`` device_caps field set
(see :ref:`VIDIOC_QUERYCAP`).
See :ref:`v4l2_hardware_control` for more details.
Media Hardware
Subset of the hardware that is supported by the Linux Media API.
This includes audio and video capture and playback hardware,
digital and analog TV, camera sensors, ISPs, remote controllers,
codecs, HDMI Consumer Electronics Control, HDMI capture, etc.
Microprocessor부터 SoC까지
151-182**Microprocessor**는 한 integrated circuit에서 instruction이 지정한 기본 arithmetic, logical, control, input/output(I/O) operation을 수행하여 computer program의 instruction을 실행하는 electronic circuitry입니다.
**Peripheral**은 `Hardware Peripheral`과 같은 뜻입니다.
**RC API**는 **Remote Controller API**의 약자입니다. Remote controller에서 데이터를 수신하고 remote controller로 데이터를 전송하도록 설계된 API이며 `remote_controllers` 참조에 자세한 내용이 있습니다.
**SMBus**는 bus를 더 엄격하게 사용하는 방법을 정의한 I²C의 부분집합입니다.
**SPI**는 **Serial Peripheral Interface Bus**의 약자입니다. 주로 embedded system에서 짧은 거리의 통신에 사용하는 synchronous serial communication interface 규격입니다.
**SoC**는 **System on a Chip**의 약자입니다. Computer 또는 다른 electronic system의 모든 component를 하나로 통합한 integrated circuit입니다.
Microprocessor
Electronic circuitry that carries out the instructions of a
computer program by performing the basic arithmetic, logical,
control and input/output (I/O) operations specified by the
instructions on a single integrated circuit.
Peripheral
The same as :term:`Hardware Peripheral`.
RC API
**Remote Controller API**
An API designed to receive and transmit data from remote
controllers.
See :ref:`remote_controllers`.
SMBus
A subset of I²C, which defines a stricter usage of the bus.
SPI
**Serial Peripheral Interface Bus**
Synchronous serial communication interface specification used for
short distance communication, primarily in embedded systems.
SoC
**System on a Chip**
An integrated circuit that integrates all components of a computer
or other electronic systems.
Stream과 V4L2 용어
183-217**Stream**은 최초 source에서 최종 sink로 이동하는, 서로 구별되는 image data 또는 metadata의 흐름입니다. 최초 source는 image sensor, 최종 sink는 memory buffer일 수 있습니다.
**V4L2 API**는 `v4l2spec`에서 정의하며 V4L2 hardware를 제어하는 userspace API입니다.
**V4L2 Device Node**는 V4L driver와 연결된 `Device Node`입니다. 이름 지정 규칙은 `v4l2_device_naming` 참조에서 정의합니다.
**V4L2 Hardware**는 `V4L2 API`가 지원하는 media hardware 부분입니다.
**V4L2 Sub-device**는 `Bridge Driver`가 제어하지 않는 V4L2 hardware component입니다. 자세한 내용은 `subdev` 참조를 봅니다.
**Video-node-centric**은 사용할 때 Media Controller가 필요하지 않은 V4L2 device driver입니다. 이런 driver는 `device_caps` field의 `V4L2_CAP_IO_MC`를 설정하지 않습니다. Capability 조회는 `VIDIOC_QUERYCAP`을 봅니다.
**V4L2 Sub-device API**는 sensor, HDMI receiver, scaler, deinterlacer 같은 `V4L2 Sub-device`를 제어하는 `V4L2 API` 부분입니다. 자세한 내용은 `v4l2_hardware_control` 참조에 있습니다.
Stream
A distinct flow of data (image data or metadata) from an initial source
to a final sink. The initial source may be e.g. an image sensor and the
final sink e.g. a memory buffer.
V4L2 API
**V4L2 userspace API**
The userspace API defined in :ref:`v4l2spec`, which is used to
control a V4L2 hardware.
V4L2 Device Node
A :term:`Device Node` that is associated to a V4L driver.
The V4L2 device node naming is specified at :ref:`v4l2_device_naming`.
V4L2 Hardware
Part of the media hardware which is supported by the :term:`V4L2 API`.
V4L2 Sub-device
V4L2 hardware components that aren't controlled by a
:term:`Bridge Driver`. See :ref:`subdev`.
Video-node-centric
V4L2 device driver that doesn't require a media controller to be used.
Such drivers have the ``V4L2_CAP_IO_MC`` device_caps field unset
(see :ref:`VIDIOC_QUERYCAP`).
V4L2 Sub-device API
Part of the :term:`V4L2 API` which control
:term:`V4L2 sub-devices <V4L2 Sub-device>`, like sensors,
HDMI receivers, scalers, deinterlacers.
See :ref:`v4l2_hardware_control` for more details.
요약·해설
glossary.rst:1-217용어를 단순 번역어로 치환하기보다 Linux Media 문맥에서 어떤 계층과 capability를 뜻하는지 설명합니다. `V4L2_CAP_IO_MC` 설정 여부가 MC-centric과 video-node-centric을 가르는 핵심 기준입니다.