|  | <refentry id="V4L2-PIX-FMT-YUV420M"> | 
|  | <refmeta> | 
|  | <refentrytitle>V4L2_PIX_FMT_YUV420M ('YM12')</refentrytitle> | 
|  | &manvol; | 
|  | </refmeta> | 
|  | <refnamediv> | 
|  | <refname> <constant>V4L2_PIX_FMT_YUV420M</constant></refname> | 
|  | <refpurpose>Variation of <constant>V4L2_PIX_FMT_YUV420</constant> | 
|  | with planes non contiguous in memory. </refpurpose> | 
|  | </refnamediv> | 
|  |  | 
|  | <refsect1> | 
|  | <title>Description</title> | 
|  |  | 
|  | <para>This is a multi-planar format, as opposed to a packed format. | 
|  | The three components are separated into three sub- images or planes. | 
|  |  | 
|  | The Y plane is first. The Y plane has one byte per pixel. The Cb data | 
|  | constitutes the second plane which is half the width and half | 
|  | the height of the Y plane (and of the image). Each Cb belongs to four | 
|  | pixels, a two-by-two square of the image. For example, | 
|  | Cb<subscript>0</subscript> belongs to Y'<subscript>00</subscript>, | 
|  | Y'<subscript>01</subscript>, Y'<subscript>10</subscript>, and | 
|  | Y'<subscript>11</subscript>. The Cr data, just like the Cb plane, is | 
|  | in the third plane. </para> | 
|  |  | 
|  | <para>If the Y plane has pad bytes after each row, then the Cb | 
|  | and Cr planes have half as many pad bytes after their rows. In other | 
|  | words, two Cx rows (including padding) is exactly as long as one Y row | 
|  | (including padding).</para> | 
|  |  | 
|  | <para><constant>V4L2_PIX_FMT_NV12M</constant> is intended to be | 
|  | used only in drivers and applications that support the multi-planar API, | 
|  | described in <xref linkend="planar-apis"/>. </para> | 
|  |  | 
|  | <example> | 
|  | <title><constant>V4L2_PIX_FMT_YVU420M</constant> 4 × 4 | 
|  | pixel image</title> | 
|  |  | 
|  | <formalpara> | 
|  | <title>Byte Order.</title> | 
|  | <para>Each cell is one byte. | 
|  | <informaltable frame="none"> | 
|  | <tgroup cols="5" align="center"> | 
|  | <colspec align="left" colwidth="2*" /> | 
|  | <tbody valign="top"> | 
|  | <row> | 
|  | <entry>start0 + 0:</entry> | 
|  | <entry>Y'<subscript>00</subscript></entry> | 
|  | <entry>Y'<subscript>01</subscript></entry> | 
|  | <entry>Y'<subscript>02</subscript></entry> | 
|  | <entry>Y'<subscript>03</subscript></entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry>start0 + 4:</entry> | 
|  | <entry>Y'<subscript>10</subscript></entry> | 
|  | <entry>Y'<subscript>11</subscript></entry> | 
|  | <entry>Y'<subscript>12</subscript></entry> | 
|  | <entry>Y'<subscript>13</subscript></entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry>start0 + 8:</entry> | 
|  | <entry>Y'<subscript>20</subscript></entry> | 
|  | <entry>Y'<subscript>21</subscript></entry> | 
|  | <entry>Y'<subscript>22</subscript></entry> | 
|  | <entry>Y'<subscript>23</subscript></entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry>start0 + 12:</entry> | 
|  | <entry>Y'<subscript>30</subscript></entry> | 
|  | <entry>Y'<subscript>31</subscript></entry> | 
|  | <entry>Y'<subscript>32</subscript></entry> | 
|  | <entry>Y'<subscript>33</subscript></entry> | 
|  | </row> | 
|  | <row><entry></entry></row> | 
|  | <row> | 
|  | <entry>start1 + 0:</entry> | 
|  | <entry>Cb<subscript>00</subscript></entry> | 
|  | <entry>Cb<subscript>01</subscript></entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry>start1 + 2:</entry> | 
|  | <entry>Cb<subscript>10</subscript></entry> | 
|  | <entry>Cb<subscript>11</subscript></entry> | 
|  | </row> | 
|  | <row><entry></entry></row> | 
|  | <row> | 
|  | <entry>start2 + 0:</entry> | 
|  | <entry>Cr<subscript>00</subscript></entry> | 
|  | <entry>Cr<subscript>01</subscript></entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry>start2 + 2:</entry> | 
|  | <entry>Cr<subscript>10</subscript></entry> | 
|  | <entry>Cr<subscript>11</subscript></entry> | 
|  | </row> | 
|  | </tbody> | 
|  | </tgroup> | 
|  | </informaltable> | 
|  | </para> | 
|  | </formalpara> | 
|  |  | 
|  | <formalpara> | 
|  | <title>Color Sample Location.</title> | 
|  | <para> | 
|  | <informaltable frame="none"> | 
|  | <tgroup cols="7" align="center"> | 
|  | <tbody valign="top"> | 
|  | <row> | 
|  | <entry></entry> | 
|  | <entry>0</entry><entry></entry><entry>1</entry><entry></entry> | 
|  | <entry>2</entry><entry></entry><entry>3</entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry>0</entry> | 
|  | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | 
|  | <entry>Y</entry><entry></entry><entry>Y</entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry></entry> | 
|  | <entry></entry><entry>C</entry><entry></entry><entry></entry> | 
|  | <entry></entry><entry>C</entry><entry></entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry>1</entry> | 
|  | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | 
|  | <entry>Y</entry><entry></entry><entry>Y</entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry></entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry>2</entry> | 
|  | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | 
|  | <entry>Y</entry><entry></entry><entry>Y</entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry></entry> | 
|  | <entry></entry><entry>C</entry><entry></entry><entry></entry> | 
|  | <entry></entry><entry>C</entry><entry></entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry>3</entry> | 
|  | <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> | 
|  | <entry>Y</entry><entry></entry><entry>Y</entry> | 
|  | </row> | 
|  | </tbody> | 
|  | </tgroup> | 
|  | </informaltable> | 
|  | </para> | 
|  | </formalpara> | 
|  | </example> | 
|  | </refsect1> | 
|  | </refentry> |