xref: /OK3568_Linux_fs/kernel/Documentation/userspace-api/media/v4l/pixfmt-m420.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun.. _V4L2-PIX-FMT-M420:
4*4882a593Smuzhiyun
5*4882a593Smuzhiyun**************************
6*4882a593SmuzhiyunV4L2_PIX_FMT_M420 ('M420')
7*4882a593Smuzhiyun**************************
8*4882a593Smuzhiyun
9*4882a593SmuzhiyunFormat with ½ horizontal and vertical chroma resolution, also known as
10*4882a593SmuzhiyunYUV 4:2:0. Hybrid plane line-interleaved layout.
11*4882a593Smuzhiyun
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunDescription
14*4882a593Smuzhiyun===========
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunM420 is a YUV format with ½ horizontal and vertical chroma subsampling
17*4882a593Smuzhiyun(YUV 4:2:0). Pixels are organized as interleaved luma and chroma planes.
18*4882a593SmuzhiyunTwo lines of luma data are followed by one line of chroma data.
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunThe luma plane has one byte per pixel. The chroma plane contains
21*4882a593Smuzhiyuninterleaved CbCr pixels subsampled by ½ in the horizontal and vertical
22*4882a593Smuzhiyundirections. Each CbCr pair belongs to four pixels. For example,
23*4882a593SmuzhiyunCb\ :sub:`0`/Cr\ :sub:`0` belongs to Y'\ :sub:`00`, Y'\ :sub:`01`,
24*4882a593SmuzhiyunY'\ :sub:`10`, Y'\ :sub:`11`.
25*4882a593Smuzhiyun
26*4882a593SmuzhiyunAll line lengths are identical: if the Y lines include pad bytes so do
27*4882a593Smuzhiyunthe CbCr lines.
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun**Byte Order.**
30*4882a593SmuzhiyunEach cell is one byte.
31*4882a593Smuzhiyun
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun.. flat-table::
34*4882a593Smuzhiyun    :header-rows:  0
35*4882a593Smuzhiyun    :stub-columns: 0
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun    * - start + 0:
38*4882a593Smuzhiyun      - Y'\ :sub:`00`
39*4882a593Smuzhiyun      - Y'\ :sub:`01`
40*4882a593Smuzhiyun      - Y'\ :sub:`02`
41*4882a593Smuzhiyun      - Y'\ :sub:`03`
42*4882a593Smuzhiyun    * - start + 4:
43*4882a593Smuzhiyun      - Y'\ :sub:`10`
44*4882a593Smuzhiyun      - Y'\ :sub:`11`
45*4882a593Smuzhiyun      - Y'\ :sub:`12`
46*4882a593Smuzhiyun      - Y'\ :sub:`13`
47*4882a593Smuzhiyun    * - start + 8:
48*4882a593Smuzhiyun      - Cb\ :sub:`00`
49*4882a593Smuzhiyun      - Cr\ :sub:`00`
50*4882a593Smuzhiyun      - Cb\ :sub:`01`
51*4882a593Smuzhiyun      - Cr\ :sub:`01`
52*4882a593Smuzhiyun    * - start + 16:
53*4882a593Smuzhiyun      - Y'\ :sub:`20`
54*4882a593Smuzhiyun      - Y'\ :sub:`21`
55*4882a593Smuzhiyun      - Y'\ :sub:`22`
56*4882a593Smuzhiyun      - Y'\ :sub:`23`
57*4882a593Smuzhiyun    * - start + 20:
58*4882a593Smuzhiyun      - Y'\ :sub:`30`
59*4882a593Smuzhiyun      - Y'\ :sub:`31`
60*4882a593Smuzhiyun      - Y'\ :sub:`32`
61*4882a593Smuzhiyun      - Y'\ :sub:`33`
62*4882a593Smuzhiyun    * - start + 24:
63*4882a593Smuzhiyun      - Cb\ :sub:`10`
64*4882a593Smuzhiyun      - Cr\ :sub:`10`
65*4882a593Smuzhiyun      - Cb\ :sub:`11`
66*4882a593Smuzhiyun      - Cr\ :sub:`11`
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun**Color Sample Location:**
70*4882a593Smuzhiyun
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun.. flat-table::
74*4882a593Smuzhiyun    :header-rows:  0
75*4882a593Smuzhiyun    :stub-columns: 0
76*4882a593Smuzhiyun
77*4882a593Smuzhiyun    * -
78*4882a593Smuzhiyun      - 0
79*4882a593Smuzhiyun      -
80*4882a593Smuzhiyun      - 1
81*4882a593Smuzhiyun      - 2
82*4882a593Smuzhiyun      -
83*4882a593Smuzhiyun      - 3
84*4882a593Smuzhiyun    * - 0
85*4882a593Smuzhiyun      - Y
86*4882a593Smuzhiyun      -
87*4882a593Smuzhiyun      - Y
88*4882a593Smuzhiyun      - Y
89*4882a593Smuzhiyun      -
90*4882a593Smuzhiyun      - Y
91*4882a593Smuzhiyun    * -
92*4882a593Smuzhiyun      -
93*4882a593Smuzhiyun      - C
94*4882a593Smuzhiyun      -
95*4882a593Smuzhiyun      -
96*4882a593Smuzhiyun      - C
97*4882a593Smuzhiyun      -
98*4882a593Smuzhiyun    * - 1
99*4882a593Smuzhiyun      - Y
100*4882a593Smuzhiyun      -
101*4882a593Smuzhiyun      - Y
102*4882a593Smuzhiyun      - Y
103*4882a593Smuzhiyun      -
104*4882a593Smuzhiyun      - Y
105*4882a593Smuzhiyun    * -
106*4882a593Smuzhiyun    * - 2
107*4882a593Smuzhiyun      - Y
108*4882a593Smuzhiyun      -
109*4882a593Smuzhiyun      - Y
110*4882a593Smuzhiyun      - Y
111*4882a593Smuzhiyun      -
112*4882a593Smuzhiyun      - Y
113*4882a593Smuzhiyun    * -
114*4882a593Smuzhiyun      -
115*4882a593Smuzhiyun      - C
116*4882a593Smuzhiyun      -
117*4882a593Smuzhiyun      -
118*4882a593Smuzhiyun      - C
119*4882a593Smuzhiyun      -
120*4882a593Smuzhiyun    * - 3
121*4882a593Smuzhiyun      - Y
122*4882a593Smuzhiyun      -
123*4882a593Smuzhiyun      - Y
124*4882a593Smuzhiyun      - Y
125*4882a593Smuzhiyun      -
126*4882a593Smuzhiyun      - Y
127