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