blob: fab55f2458d6ca40f0d1b620289020a48b61195c [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
<HTML
><HEAD
><TITLE
>V4L2_PIX_FMT_NV12 ('NV12'), V4L2_PIX_FMT_NV21 ('NV21')</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
REL="HOME"
TITLE="Video for Linux Two API Specification"
HREF="book1.htm"><LINK
REL="UP"
TITLE="YUV Formats"
HREF="x3891.htm"><LINK
REL="PREVIOUS"
TITLE="V4L2_PIX_FMT_YUV411P ('411P')"
HREF="r5319.htm"><LINK
REL="NEXT"
TITLE="Compressed Formats"
HREF="x5634.htm"></HEAD
><BODY
CLASS="REFENTRY"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
SUMMARY="Header navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Video for Linux Two API Specification: Revision 0.24</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="r5319.htm"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="x5634.htm"
ACCESSKEY="N"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><H1
><A
NAME="AEN5470"
></A
>V4L2_PIX_FMT_NV12 ('NV12'), V4L2_PIX_FMT_NV21 ('NV21')</H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN5474"
></A
><H2
>Name</H2
><CODE
CLASS="CONSTANT"
>V4L2_PIX_FMT_NV12</CODE
>, <CODE
CLASS="CONSTANT"
>V4L2_PIX_FMT_NV21</CODE
>&nbsp;--&nbsp;Formats with &frac12; 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
<CODE
CLASS="CONSTANT"
>V4L2_PIX_FMT_YVU420</CODE
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN5481"
></A
><H2
>Description</H2
><P
>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
<CODE
CLASS="CONSTANT"
>V4L2_PIX_FMT_NV12</CODE
>, 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<SUB
>0</SUB
>/Cr<SUB
>0</SUB
> belongs to
Y'<SUB
>00</SUB
>, Y'<SUB
>01</SUB
>,
Y'<SUB
>10</SUB
>, Y'<SUB
>11</SUB
>.
<CODE
CLASS="CONSTANT"
>V4L2_PIX_FMT_NV21</CODE
> is the same except the Cb and
Cr bytes are swapped, the CrCb plane starts with a Cr byte.</P
><P
>If the Y plane has pad bytes after each row, then the
CbCr plane has as many pad bytes after its rows.</P
><DIV
CLASS="EXAMPLE"
><A
NAME="AEN5493"
></A
><P
><B
>Example 2-1. <CODE
CLASS="CONSTANT"
>V4L2_PIX_FMT_NV12</CODE
> 4 &times; 4
pixel image</B
></P
><DIV
CLASS="FORMALPARA"
><P
><B
>Byte Order. </B
>Each cell is one byte.
<DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN5499"
></A
><TABLE
BORDER="0"
FRAME="void"
CLASS="CALSTABLE"
><COL
WIDTH="2*"
ALIGN="LEFT"><COL><COL><COL><COL><TBODY
VALIGN="TOP"
><TR
><TD
>start&nbsp;+&nbsp;0:</TD
><TD
>Y'<SUB
>00</SUB
></TD
><TD
>Y'<SUB
>01</SUB
></TD
><TD
>Y'<SUB
>02</SUB
></TD
><TD
>Y'<SUB
>03</SUB
></TD
></TR
><TR
><TD
>start&nbsp;+&nbsp;4:</TD
><TD
>Y'<SUB
>10</SUB
></TD
><TD
>Y'<SUB
>11</SUB
></TD
><TD
>Y'<SUB
>12</SUB
></TD
><TD
>Y'<SUB
>13</SUB
></TD
></TR
><TR
><TD
>start&nbsp;+&nbsp;8:</TD
><TD
>Y'<SUB
>20</SUB
></TD
><TD
>Y'<SUB
>21</SUB
></TD
><TD
>Y'<SUB
>22</SUB
></TD
><TD
>Y'<SUB
>23</SUB
></TD
></TR
><TR
><TD
>start&nbsp;+&nbsp;12:</TD
><TD
>Y'<SUB
>30</SUB
></TD
><TD
>Y'<SUB
>31</SUB
></TD
><TD
>Y'<SUB
>32</SUB
></TD
><TD
>Y'<SUB
>33</SUB
></TD
></TR
><TR
><TD
>start&nbsp;+&nbsp;16:</TD
><TD
>Cb<SUB
>00</SUB
></TD
><TD
>Cr<SUB
>00</SUB
></TD
><TD
>Cb<SUB
>01</SUB
></TD
><TD
>Cr<SUB
>01</SUB
></TD
></TR
><TR
><TD
>start&nbsp;+&nbsp;20:</TD
><TD
>Cb<SUB
>10</SUB
></TD
><TD
>Cr<SUB
>10</SUB
></TD
><TD
>Cb<SUB
>11</SUB
></TD
><TD
>Cr<SUB
>11</SUB
></TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
>
</P
></DIV
><DIV
CLASS="FORMALPARA"
><P
><B
>Color Sample Location. </B
> <DIV
CLASS="INFORMALTABLE"
><P
></P
><A
NAME="AEN5566"
></A
><TABLE
BORDER="0"
FRAME="void"
CLASS="CALSTABLE"
><COL><COL><COL><COL><COL><COL><COL><TBODY
VALIGN="TOP"
><TR
><TD
>&nbsp;</TD
><TD
>0</TD
><TD
>&nbsp;</TD
><TD
>1</TD
><TD
>&nbsp;</TD
><TD
>2</TD
><TD
>&nbsp;</TD
><TD
>3</TD
></TR
><TR
><TD
>0</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
></TR
><TR
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>C</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>C</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>1</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
></TR
><TR
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>2</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
></TR
><TR
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>C</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>&nbsp;</TD
><TD
>C</TD
><TD
>&nbsp;</TD
></TR
><TR
><TD
>3</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
><TD
>&nbsp;</TD
><TD
>Y</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
>
</P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
SUMMARY="Footer navigation table"
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="r5319.htm"
ACCESSKEY="P"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="book1.htm"
ACCESSKEY="H"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="x5634.htm"
ACCESSKEY="N"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>V4L2_PIX_FMT_YUV411P ('411P')</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="x3891.htm"
ACCESSKEY="U"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>Compressed Formats</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>