요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.
1. 요약·해설
원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.
2. 영어 원문 전체
번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.
원문 전체 펼치기
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
.. _packed-hsv:
******************
Packed HSV formats
******************
Description
===========
The *hue* (h) is measured in degrees, the equivalence between degrees and LSBs
depends on the hsv-encoding used, see :ref:`colorspaces`.
The *saturation* (s) and the *value* (v) are measured in percentage of the
cylinder: 0 being the smallest value and 255 the maximum.
The values are packed in 24 or 32 bit formats.
.. raw:: latex
\begingroup
\tiny
\setlength{\tabcolsep}{2pt}
.. tabularcolumns:: |p{2.6cm}|p{0.8cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
.. _packed-hsv-formats:
.. flat-table:: Packed HSV Image Formats
:header-rows: 2
:stub-columns: 0
* - Identifier
- Code
-
- :cspan:`7` Byte 0 in memory
- :cspan:`7` Byte 1
- :cspan:`7` Byte 2
- :cspan:`7` Byte 3
* -
-
- Bit
- 7
- 6
- 5
- 4
- 3
- 2
- 1
- 0
- 7
- 6
- 5
- 4
- 3
- 2
- 1
- 0
- 7
- 6
- 5
- 4
- 3
- 2
- 1
- 0
- 7
- 6
- 5
- 4
- 3
- 2
- 1
- 0
* .. _V4L2-PIX-FMT-HSV32:
- ``V4L2_PIX_FMT_HSV32``
- 'HSV4'
-
-
-
-
-
-
-
-
-
- h\ :sub:`7`
- h\ :sub:`6`
- h\ :sub:`5`
- h\ :sub:`4`
- h\ :sub:`3`
- h\ :sub:`2`
- h\ :sub:`1`
- h\ :sub:`0`
- s\ :sub:`7`
- s\ :sub:`6`
- s\ :sub:`5`
- s\ :sub:`4`
- s\ :sub:`3`
- s\ :sub:`2`
- s\ :sub:`1`
- s\ :sub:`0`
- v\ :sub:`7`
- v\ :sub:`6`
- v\ :sub:`5`
- v\ :sub:`4`
- v\ :sub:`3`
- v\ :sub:`2`
- v\ :sub:`1`
- v\ :sub:`0`
* .. _V4L2-PIX-FMT-HSV24:
- ``V4L2_PIX_FMT_HSV24``
- 'HSV3'
-
- h\ :sub:`7`
- h\ :sub:`6`
- h\ :sub:`5`
- h\ :sub:`4`
- h\ :sub:`3`
- h\ :sub:`2`
- h\ :sub:`1`
- h\ :sub:`0`
- s\ :sub:`7`
- s\ :sub:`6`
- s\ :sub:`5`
- s\ :sub:`4`
- s\ :sub:`3`
- s\ :sub:`2`
- s\ :sub:`1`
- s\ :sub:`0`
- v\ :sub:`7`
- v\ :sub:`6`
- v\ :sub:`5`
- v\ :sub:`4`
- v\ :sub:`3`
- v\ :sub:`2`
- v\ :sub:`1`
- v\ :sub:`0`
-
.. raw:: latex
\endgroup
Bit 7 is the most significant bit.
3. 한국어 전문 번역
영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.
Hue·saturation·value 범위
1-20Hue `h`는 degree로 측정하며 degree와 LSB의 대응은 선택한 HSV encoding에 따라 달라집니다. 정확한 변환은 colorspace 절의 hsv-encoding 정의를 따라야 합니다.
Saturation `s`와 value `v`는 HSV cylinder에서의 백분율을 8-bit 값으로 나타냅니다. 0이 최소이고 255가 최대입니다. 세 값은 24-bit 또는 32-bit packed 형식으로 저장됩니다.
각 component의 수치 의미입니다.
.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
.. _packed-hsv:
******************
Packed HSV formats
******************
Description
===========
The *hue* (h) is measured in degrees, the equivalence between degrees and LSBs
depends on the hsv-encoding used, see :ref:`colorspaces`.
The *saturation* (s) and the *value* (v) are measured in percentage of the
cylinder: 0 being the smallest value and 255 the maximum.
The values are packed in 24 or 32 bit formats.
HSV24와 HSV32 memory byte 배치
21-157표의 Byte 0은 memory에서 가장 먼저 오는 byte이며 bit 7이 MSB입니다.
두 형식의 실제 memory 순서를 비교합니다.
`V4L2_PIX_FMT_HSV32`의 첫 byte는 component data를 담지 않고 뒤 세 byte에 h, s, v가 차례로 옵니다. `V4L2_PIX_FMT_HSV24`는 padding 없이 h, s, v 세 byte만 연속 저장합니다.
.. raw:: latex
\begingroup
\tiny
\setlength{\tabcolsep}{2pt}
.. tabularcolumns:: |p{2.6cm}|p{0.8cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|p{0.22cm}|
.. _packed-hsv-formats:
.. flat-table:: Packed HSV Image Formats
:header-rows: 2
:stub-columns: 0
* - Identifier
- Code
-
- :cspan:`7` Byte 0 in memory
- :cspan:`7` Byte 1
- :cspan:`7` Byte 2
- :cspan:`7` Byte 3
* -
-
- Bit
- 7
- 6
- 5
- 4
- 3
- 2
- 1
- 0
- 7
- 6
- 5
- 4
- 3
- 2
- 1
- 0
- 7
- 6
- 5
- 4
- 3
- 2
- 1
- 0
- 7
- 6
- 5
- 4
- 3
- 2
- 1
- 0
* .. _V4L2-PIX-FMT-HSV32:
- ``V4L2_PIX_FMT_HSV32``
- 'HSV4'
-
-
-
-
-
-
-
-
-
- h\ :sub:`7`
- h\ :sub:`6`
- h\ :sub:`5`
- h\ :sub:`4`
- h\ :sub:`3`
- h\ :sub:`2`
- h\ :sub:`1`
- h\ :sub:`0`
- s\ :sub:`7`
- s\ :sub:`6`
- s\ :sub:`5`
- s\ :sub:`4`
- s\ :sub:`3`
- s\ :sub:`2`
- s\ :sub:`1`
- s\ :sub:`0`
- v\ :sub:`7`
- v\ :sub:`6`
- v\ :sub:`5`
- v\ :sub:`4`
- v\ :sub:`3`
- v\ :sub:`2`
- v\ :sub:`1`
- v\ :sub:`0`
* .. _V4L2-PIX-FMT-HSV24:
- ``V4L2_PIX_FMT_HSV24``
- 'HSV3'
-
- h\ :sub:`7`
- h\ :sub:`6`
- h\ :sub:`5`
- h\ :sub:`4`
- h\ :sub:`3`
- h\ :sub:`2`
- h\ :sub:`1`
- h\ :sub:`0`
- s\ :sub:`7`
- s\ :sub:`6`
- s\ :sub:`5`
- s\ :sub:`4`
- s\ :sub:`3`
- s\ :sub:`2`
- s\ :sub:`1`
- s\ :sub:`0`
- v\ :sub:`7`
- v\ :sub:`6`
- v\ :sub:`5`
- v\ :sub:`4`
- v\ :sub:`3`
- v\ :sub:`2`
- v\ :sub:`1`
- v\ :sub:`0`
-
.. raw:: latex
\endgroup
Bit 7 is the most significant bit.
요약·해설
pixfmt-packed-hsv.rst:1-157HSV24는 h·s·v 세 byte를, HSV32는 padding 뒤 h·s·v 세 byte를 저장하며 bit 7이 각 component의 MSB입니다.