xref: /linux/Documentation/userspace-api/media/v4l/pixfmt-yuv-luma.rst (revision 24bce201d79807b668bf9d9e0aca801c5c0d5f78)
1.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2
3.. _yuv-luma-only:
4
5*****************
6Luma-Only Formats
7*****************
8
9This family of formats only store the luma component of a Y'CbCr image. They
10are often referred to as greyscale formats.
11
12.. note::
13
14   - In all the tables that follow, bit 7 is the most significant bit in a byte.
15   - Formats are described with the minimum number of pixels needed to create a
16     byte-aligned repeating pattern. `...` indicates repetition of the pattern.
17   - Y'\ :sub:`x`\ [9:2] denotes bits 9 to 2 of the Y' value for pixel at colum
18     `x`.
19   - `0` denotes padding bits set to 0.
20
21
22.. raw:: latex
23
24    \scriptsize
25
26.. tabularcolumns:: |p{3.6cm}|p{3.0cm}|p{1.3cm}|p{2.6cm}|p{1.3cm}|p{1.3cm}|p{1.3cm}|
27
28.. flat-table:: Luma-Only Image Formats
29    :header-rows: 1
30    :stub-columns: 0
31
32    * - Identifier
33      - Code
34      - Byte 0
35      - Byte 1
36      - Byte 2
37      - Byte 3
38      - Byte 4
39
40    * .. _V4L2-PIX-FMT-GREY:
41
42      - ``V4L2_PIX_FMT_GREY``
43      - 'GREY'
44
45      - Y'\ :sub:`0`\ [7:0]
46      - ...
47      - ...
48      - ...
49      - ...
50
51    * .. _V4L2-PIX-FMT-IPU3-Y10:
52
53      - ``V4L2_PIX_FMT_IPU3_Y10``
54      - 'ip3y'
55
56      - Y'\ :sub:`0`\ [7:0]
57      - Y'\ :sub:`1`\ [5:0] Y'\ :sub:`0`\ [9:8]
58      - Y'\ :sub:`2`\ [3:0] Y'\ :sub:`1`\ [9:6]
59      - Y'\ :sub:`3`\ [1:0] Y'\ :sub:`2`\ [9:4]
60      - Y'\ :sub:`3`\ [9:2]
61
62    * .. _V4L2-PIX-FMT-Y10:
63
64      - ``V4L2_PIX_FMT_Y10``
65      - 'Y10 '
66
67      - Y'\ :sub:`0`\ [7:0]
68      - `000000` Y'\ :sub:`0`\ [9:8]
69      - ...
70      - ...
71      - ...
72
73    * .. _V4L2-PIX-FMT-Y10BPACK:
74
75      - ``V4L2_PIX_FMT_Y10BPACK``
76      - 'Y10B'
77
78      - Y'\ :sub:`0`\ [9:2]
79      - Y'\ :sub:`0`\ [1:0] Y'\ :sub:`1`\ [9:4]
80      - Y'\ :sub:`1`\ [3:0] Y'\ :sub:`2`\ [9:6]
81      - Y'\ :sub:`2`\ [5:0] Y'\ :sub:`3`\ [9:8]
82      - Y'\ :sub:`3`\ [7:0]
83
84    * .. _V4L2-PIX-FMT-Y10P:
85
86      - ``V4L2_PIX_FMT_Y10P``
87      - 'Y10P'
88
89      - Y'\ :sub:`0`\ [9:2]
90      - Y'\ :sub:`1`\ [9:2]
91      - Y'\ :sub:`2`\ [9:2]
92      - Y'\ :sub:`3`\ [9:2]
93      - Y'\ :sub:`3`\ [1:0] Y'\ :sub:`2`\ [1:0] Y'\ :sub:`1`\ [1:0] Y'\ :sub:`0`\ [1:0]
94
95    * .. _V4L2-PIX-FMT-Y12:
96
97      - ``V4L2_PIX_FMT_Y12``
98      - 'Y12 '
99
100      - Y'\ :sub:`0`\ [7:0]
101      - `0000` Y'\ :sub:`0`\ [11:8]
102      - ...
103      - ...
104      - ...
105
106    * .. _V4L2-PIX-FMT-Y14:
107
108      - ``V4L2_PIX_FMT_Y14``
109      - 'Y14 '
110
111      - Y'\ :sub:`0`\ [7:0]
112      - `00` Y'\ :sub:`0`\ [13:8]
113      - ...
114      - ...
115      - ...
116
117    * .. _V4L2-PIX-FMT-Y16:
118
119      - ``V4L2_PIX_FMT_Y16``
120      - 'Y16 '
121
122      - Y'\ :sub:`0`\ [7:0]
123      - Y'\ :sub:`0`\ [15:8]
124      - ...
125      - ...
126      - ...
127
128    * .. _V4L2-PIX-FMT-Y16-BE:
129
130      - ``V4L2_PIX_FMT_Y16_BE``
131      - 'Y16 ' | (1U << 31)
132
133      - Y'\ :sub:`0`\ [15:8]
134      - Y'\ :sub:`0`\ [7:0]
135      - ...
136      - ...
137      - ...
138
139.. raw:: latex
140
141    \normalsize
142
143.. note::
144
145    For the Y16 and Y16_BE formats, the actual sampling precision may be lower
146    than 16 bits. For example, 10 bits per pixel uses values in the range 0 to
147    1023. For the IPU3_Y10 format 25 pixels are packed into 32 bytes, which
148    leaves the 6 most significant bits of the last byte padded with 0.
149