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 ½ 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