1    <refentry>
2      <refmeta>
3	<refentrytitle>V4L2_PIX_FMT_NV12MT ('TM12')</refentrytitle>
4	&manvol;
5      </refmeta>
6      <refnamediv>
7	<refname id="V4L2-PIX-FMT-NV12MT"><constant>V4L2_PIX_FMT_NV12MT
8</constant></refname>
9	<refpurpose>Formats with &frac12; horizontal and vertical
10chroma resolution. This format has two planes - one for luminance and one for
11chrominance. Chroma samples are interleaved. The difference to
12<constant>V4L2_PIX_FMT_NV12</constant> is the memory layout. Pixels are
13grouped in macroblocks of 64x32 size. The order of macroblocks in memory is
14also not standard.
15	</refpurpose>
16      </refnamediv>
17      <refsect1>
18	<title>Description</title>
19
20	<para>This is the two-plane versions of the YUV 4:2:0 format where data
21is grouped into 64x32 macroblocks. The three components are separated into two
22sub-images or planes. The Y plane has one byte per pixel and pixels are grouped
23into 64x32 macroblocks. The CbCr plane has the same width, in bytes, as the Y
24plane (and the image), but is half as tall in pixels. The chroma plane is also
25grouped into 64x32 macroblocks.</para>
26	<para>Width of the buffer has to be aligned to the multiple of 128, and
27height alignment is 32. Every four adjacent buffers - two horizontally and two
28vertically are grouped together and are located in memory in Z or flipped Z
29order. </para>
30	<para>Layout of macroblocks in memory is presented in the following
31figure.</para>
32	<para><figure id="nv12mt">
33	    <title><constant>V4L2_PIX_FMT_NV12MT</constant> macroblock Z shape
34memory layout</title>
35	    <mediaobject>
36	      <imageobject>
37		<imagedata fileref="nv12mt.gif" format="GIF" />
38	      </imageobject>
39	    </mediaobject>
40	</figure>
41	The requirement that width is multiple of 128 is implemented because,
42the Z shape cannot be cut in half horizontally. In case the vertical resolution
43of macroblocks is odd then the last row of macroblocks is arranged in a linear
44order.  </para>
45	<para>In case of chroma the layout is identical. Cb and Cr samples are
46interleaved. Height of the buffer is aligned to 32.
47	</para>
48	<example>
49	  <title>Memory layout of macroblocks in <constant>V4L2_PIX_FMT_NV12
50</constant> format pixel image - extreme case</title>
51	<para>
52	<figure id="nv12mt_ex">
53	    <title>Example <constant>V4L2_PIX_FMT_NV12MT</constant> memory
54layout of macroblocks</title>
55	    <mediaobject>
56	      <imageobject>
57		<imagedata fileref="nv12mt_example.gif" format="GIF" />
58	      </imageobject>
59	    </mediaobject>
60	</figure>
61	Memory layout of macroblocks of <constant>V4L2_PIX_FMT_NV12MT
62</constant> format in most extreme case.
63	</para>
64	</example>
65      </refsect1>
66    </refentry>
67