|  | <refentry> | 
|  | <refmeta> | 
|  | <refentrytitle>V4L2_PIX_FMT_NV12 ('NV12'), V4L2_PIX_FMT_NV21 ('NV21')</refentrytitle> | 
|  | &manvol; | 
|  | </refmeta> | 
|  | <refnamediv> | 
|  | <refname id="V4L2-PIX-FMT-NV12"><constant>V4L2_PIX_FMT_NV12</constant></refname> | 
|  | <refname id="V4L2-PIX-FMT-NV21"><constant>V4L2_PIX_FMT_NV21</constant></refname> | 
|  | <refpurpose>Formats with ½ horizontal and vertical | 
|  | chroma resolution, also known as YUV 4:2:0. One luminance and one | 
|  | chrominance plane with alternating chroma samples as opposed to | 
|  | <constant>V4L2_PIX_FMT_YVU420</constant></refpurpose> | 
|  | </refnamediv> | 
|  | <refsect1> | 
|  | <title>Description</title> | 
|  |  | 
|  | <para>These are two-plane versions of the YUV 4:2:0 format. | 
|  | The three components are separated into two sub-images or planes. The | 
|  | Y plane is first. The Y plane has one byte per pixel. For | 
|  | <constant>V4L2_PIX_FMT_NV12</constant>, a combined CbCr plane | 
|  | immediately follows the Y plane in memory.  The CbCr plane is the same | 
|  | width, in bytes, as the Y plane (and of the image), but is half as | 
|  | tall in pixels. Each CbCr pair belongs to four pixels. For example, | 
|  | Cb<subscript>0</subscript>/Cr<subscript>0</subscript> belongs to | 
|  | Y'<subscript>00</subscript>, Y'<subscript>01</subscript>, | 
|  | Y'<subscript>10</subscript>, Y'<subscript>11</subscript>. | 
|  | <constant>V4L2_PIX_FMT_NV21</constant> is the same except the Cb and | 
|  | Cr bytes are swapped, the CrCb plane starts with a Cr byte.</para> | 
|  |  | 
|  | <para>If the Y plane has pad bytes after each row, then the | 
|  | CbCr plane has as many pad bytes after its rows.</para> | 
|  |  | 
|  | <example> | 
|  | <title><constant>V4L2_PIX_FMT_NV12</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>start + 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>start + 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>start + 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>start + 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>start + 16:</entry> | 
|  | <entry>Cb<subscript>00</subscript></entry> | 
|  | <entry>Cr<subscript>00</subscript></entry> | 
|  | <entry>Cb<subscript>01</subscript></entry> | 
|  | <entry>Cr<subscript>01</subscript></entry> | 
|  | </row> | 
|  | <row> | 
|  | <entry>start + 20:</entry> | 
|  | <entry>Cb<subscript>10</subscript></entry> | 
|  | <entry>Cr<subscript>10</subscript></entry> | 
|  | <entry>Cb<subscript>11</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> |