1 <refentry> 2 <refmeta> 3 <refentrytitle>V4L2_PIX_FMT_NV16M ('NM16'), V4L2_PIX_FMT_NV61M ('NM61')</refentrytitle> 4 &manvol; 5 </refmeta> 6 <refnamediv> 7 <refname id="V4L2-PIX-FMT-NV16M"><constant>V4L2_PIX_FMT_NV16M</constant></refname> 8 <refname id="V4L2-PIX-FMT-NV61M"><constant>V4L2_PIX_FMT_NV61M</constant></refname> 9 <refpurpose>Variation of <constant>V4L2_PIX_FMT_NV16</constant> and <constant>V4L2_PIX_FMT_NV61</constant> with planes 10 non contiguous in memory. </refpurpose> 11 </refnamediv> 12 <refsect1> 13 <title>Description</title> 14 15 <para>This is a multi-planar, two-plane version of the YUV 4:2:2 format. 16The three components are separated into two sub-images or planes. 17<constant>V4L2_PIX_FMT_NV16M</constant> differs from <constant>V4L2_PIX_FMT_NV16 18</constant> in that the two planes are non-contiguous in memory, i.e. the chroma 19plane does not necessarily immediately follow the luma plane. 20The luminance data occupies the first plane. The Y plane has one byte per pixel. 21In the second plane there is chrominance data with alternating chroma samples. 22The CbCr plane is the same width and height, in bytes, as the Y plane. 23Each CbCr pair belongs to two pixels. For example, 24Cb<subscript>0</subscript>/Cr<subscript>0</subscript> belongs to 25Y'<subscript>00</subscript>, Y'<subscript>01</subscript>. 26<constant>V4L2_PIX_FMT_NV61M</constant> is the same as <constant>V4L2_PIX_FMT_NV16M</constant> 27except the Cb and Cr bytes are swapped, the CrCb plane starts with a Cr byte.</para> 28 29 <para><constant>V4L2_PIX_FMT_NV16M</constant> and 30<constant>V4L2_PIX_FMT_NV61M</constant> are intended to be used only in drivers 31and applications that support the multi-planar API, described in 32<xref linkend="planar-apis"/>. </para> 33 34 <example> 35 <title><constant>V4L2_PIX_FMT_NV16M</constant> 4 × 4 pixel image</title> 36 37 <formalpara> 38 <title>Byte Order.</title> 39 <para>Each cell is one byte. 40 <informaltable frame="none"> 41 <tgroup cols="5" align="center"> 42 <colspec align="left" colwidth="2*" /> 43 <tbody valign="top"> 44 <row> 45 <entry>start0 + 0:</entry> 46 <entry>Y'<subscript>00</subscript></entry> 47 <entry>Y'<subscript>01</subscript></entry> 48 <entry>Y'<subscript>02</subscript></entry> 49 <entry>Y'<subscript>03</subscript></entry> 50 </row> 51 <row> 52 <entry>start0 + 4:</entry> 53 <entry>Y'<subscript>10</subscript></entry> 54 <entry>Y'<subscript>11</subscript></entry> 55 <entry>Y'<subscript>12</subscript></entry> 56 <entry>Y'<subscript>13</subscript></entry> 57 </row> 58 <row> 59 <entry>start0 + 8:</entry> 60 <entry>Y'<subscript>20</subscript></entry> 61 <entry>Y'<subscript>21</subscript></entry> 62 <entry>Y'<subscript>22</subscript></entry> 63 <entry>Y'<subscript>23</subscript></entry> 64 </row> 65 <row> 66 <entry>start0 + 12:</entry> 67 <entry>Y'<subscript>30</subscript></entry> 68 <entry>Y'<subscript>31</subscript></entry> 69 <entry>Y'<subscript>32</subscript></entry> 70 <entry>Y'<subscript>33</subscript></entry> 71 </row> 72 <row> 73 <entry></entry> 74 </row> 75 <row> 76 <entry>start1 + 0:</entry> 77 <entry>Cb<subscript>00</subscript></entry> 78 <entry>Cr<subscript>00</subscript></entry> 79 <entry>Cb<subscript>02</subscript></entry> 80 <entry>Cr<subscript>02</subscript></entry> 81 </row> 82 <row> 83 <entry>start1 + 4:</entry> 84 <entry>Cb<subscript>10</subscript></entry> 85 <entry>Cr<subscript>10</subscript></entry> 86 <entry>Cb<subscript>12</subscript></entry> 87 <entry>Cr<subscript>12</subscript></entry> 88 </row> 89 <row> 90 <entry>start1 + 8:</entry> 91 <entry>Cb<subscript>20</subscript></entry> 92 <entry>Cr<subscript>20</subscript></entry> 93 <entry>Cb<subscript>22</subscript></entry> 94 <entry>Cr<subscript>22</subscript></entry> 95 </row> 96 <row> 97 <entry>start1 + 12:</entry> 98 <entry>Cb<subscript>30</subscript></entry> 99 <entry>Cr<subscript>30</subscript></entry> 100 <entry>Cb<subscript>32</subscript></entry> 101 <entry>Cr<subscript>32</subscript></entry> 102 </row> 103 </tbody> 104 </tgroup> 105 </informaltable> 106 </para> 107 </formalpara> 108 109 <formalpara> 110 <title>Color Sample Location.</title> 111 <para> 112 <informaltable frame="none"> 113 <tgroup cols="7" align="center"> 114 <tbody valign="top"> 115 <row> 116 <entry></entry> 117 <entry>0</entry><entry></entry><entry>1</entry><entry></entry> 118 <entry>2</entry><entry></entry><entry>3</entry> 119 </row> 120 <row> 121 <entry>0</entry> 122 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> 123 <entry>Y</entry><entry></entry><entry>Y</entry> 124 </row> 125 <row> 126 <entry></entry> 127 <entry></entry><entry>C</entry><entry></entry><entry></entry> 128 <entry></entry><entry>C</entry><entry></entry> 129 </row> 130 <row> 131 <entry>1</entry> 132 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> 133 <entry>Y</entry><entry></entry><entry>Y</entry> 134 </row> 135 <row> 136 <entry></entry> 137 <entry></entry><entry>C</entry><entry></entry><entry></entry> 138 <entry></entry><entry>C</entry><entry></entry> 139 </row> 140 <row> 141 <entry></entry> 142 </row> 143 <row> 144 <entry>2</entry> 145 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> 146 <entry>Y</entry><entry></entry><entry>Y</entry> 147 </row> 148 <row> 149 <entry></entry> 150 <entry></entry><entry>C</entry><entry></entry><entry></entry> 151 <entry></entry><entry>C</entry><entry></entry> 152 </row> 153 <row> 154 <entry>3</entry> 155 <entry>Y</entry><entry></entry><entry>Y</entry><entry></entry> 156 <entry>Y</entry><entry></entry><entry>Y</entry> 157 </row> 158 <row> 159 <entry></entry> 160 <entry></entry><entry>C</entry><entry></entry><entry></entry> 161 <entry></entry><entry>C</entry><entry></entry> 162 </row> 163 </tbody> 164 </tgroup> 165 </informaltable> 166 </para> 167 </formalpara> 168 </example> 169 </refsect1> 170 </refentry> 171