[media] v4l: Documentation for the NV12MT format
Added documentation for V4L2_PIX_FMT_NV12MT format. This is a YUV 4:2:0 format with macro block size of 64x32 and specific order of macro blocks in the memory. Signed-off-by: Kamil Debski <k.debski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
parent
91707b8b27
commit
bd08a0cd5f
|
@ -272,6 +272,7 @@
|
||||||
<!ENTITY sub-grey SYSTEM "v4l/pixfmt-grey.xml">
|
<!ENTITY sub-grey SYSTEM "v4l/pixfmt-grey.xml">
|
||||||
<!ENTITY sub-nv12 SYSTEM "v4l/pixfmt-nv12.xml">
|
<!ENTITY sub-nv12 SYSTEM "v4l/pixfmt-nv12.xml">
|
||||||
<!ENTITY sub-nv12m SYSTEM "v4l/pixfmt-nv12m.xml">
|
<!ENTITY sub-nv12m SYSTEM "v4l/pixfmt-nv12m.xml">
|
||||||
|
<!ENTITY sub-nv12mt SYSTEM "v4l/pixfmt-nv12mt.xml">
|
||||||
<!ENTITY sub-nv16 SYSTEM "v4l/pixfmt-nv16.xml">
|
<!ENTITY sub-nv16 SYSTEM "v4l/pixfmt-nv16.xml">
|
||||||
<!ENTITY sub-packed-rgb SYSTEM "v4l/pixfmt-packed-rgb.xml">
|
<!ENTITY sub-packed-rgb SYSTEM "v4l/pixfmt-packed-rgb.xml">
|
||||||
<!ENTITY sub-packed-yuv SYSTEM "v4l/pixfmt-packed-yuv.xml">
|
<!ENTITY sub-packed-yuv SYSTEM "v4l/pixfmt-packed-yuv.xml">
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 2.1 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.7 KiB |
|
@ -0,0 +1,74 @@
|
||||||
|
<refentry>
|
||||||
|
<refmeta>
|
||||||
|
<refentrytitle>V4L2_PIX_FMT_NV12MT ('TM12')</refentrytitle>
|
||||||
|
&manvol;
|
||||||
|
</refmeta>
|
||||||
|
<refnamediv>
|
||||||
|
<refname id="V4L2-PIX-FMT-NV12MT"><constant>V4L2_PIX_FMT_NV12MT
|
||||||
|
</constant></refname>
|
||||||
|
<refpurpose>Formats with ½ horizontal and vertical
|
||||||
|
chroma resolution. This format has two planes - one for luminance and one for
|
||||||
|
chrominance. Chroma samples are interleaved. The difference to
|
||||||
|
<constant>V4L2_PIX_FMT_NV12</constant> is the memory layout. Pixels are
|
||||||
|
grouped in macroblocks of 64x32 size. The order of macroblocks in memory is
|
||||||
|
also not standard.
|
||||||
|
</refpurpose>
|
||||||
|
</refnamediv>
|
||||||
|
<refsect1>
|
||||||
|
<title>Description</title>
|
||||||
|
|
||||||
|
<para>This is the two-plane versions of the YUV 4:2:0 format where data
|
||||||
|
is grouped into 64x32 macroblocks. The three components are separated into two
|
||||||
|
sub-images or planes. The Y plane has one byte per pixel and pixels are grouped
|
||||||
|
into 64x32 macroblocks. The CbCr plane has the same width, in bytes, as the Y
|
||||||
|
plane (and the image), but is half as tall in pixels. The chroma plane is also
|
||||||
|
grouped into 64x32 macroblocks.</para>
|
||||||
|
<para>Width of the buffer has to be aligned to the multiple of 128, and
|
||||||
|
height alignment is 32. Every four adjactent buffers - two horizontally and two
|
||||||
|
vertically are grouped together and are located in memory in Z or flipped Z
|
||||||
|
order. </para>
|
||||||
|
<para>Layout of macroblocks in memory is presented in the following
|
||||||
|
figure.</para>
|
||||||
|
<para><figure id="nv12mt">
|
||||||
|
<title><constant>V4L2_PIX_FMT_NV12MT</constant> macroblock Z shape
|
||||||
|
memory layout</title>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject>
|
||||||
|
<imagedata fileref="nv12mt.gif" format="GIF" />
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
</figure>
|
||||||
|
The requirement that width is multiple of 128 is implemented because,
|
||||||
|
the Z shape cannot be cut in half horizontally. In case the vertical resolution
|
||||||
|
of macroblocks is odd then the last row of macroblocks is arranged in a linear
|
||||||
|
order. </para>
|
||||||
|
<para>In case of chroma the layout is identical. Cb and Cr samples are
|
||||||
|
interleaved. Height of the buffer is aligned to 32.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>Memory layout of macroblocks in <constant>V4L2_PIX_FMT_NV12
|
||||||
|
</constant> format pixel image - extreme case</title>
|
||||||
|
<para>
|
||||||
|
<figure id="nv12mt">
|
||||||
|
<title>Example <constant>V4L2_PIX_FMT_NV12MT</constant> memory
|
||||||
|
layout of macroblocks</title>
|
||||||
|
<mediaobject>
|
||||||
|
<imageobject>
|
||||||
|
<imagedata fileref="nv12mt_example.gif" format="GIF" />
|
||||||
|
</imageobject>
|
||||||
|
</mediaobject>
|
||||||
|
</figure>
|
||||||
|
Memory layout of macroblocks of <constant>V4L2_PIX_FMT_NV12MT
|
||||||
|
</constant> format in most extreme case.
|
||||||
|
</para>
|
||||||
|
</example>
|
||||||
|
</refsect1>
|
||||||
|
</refentry>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Local Variables:
|
||||||
|
mode: sgml
|
||||||
|
sgml-parent-document: "pixfmt.sgml"
|
||||||
|
indent-tabs-mode: nil
|
||||||
|
End:
|
||||||
|
-->
|
|
@ -709,6 +709,7 @@ information.</para>
|
||||||
&sub-yuv411p;
|
&sub-yuv411p;
|
||||||
&sub-nv12;
|
&sub-nv12;
|
||||||
&sub-nv12m;
|
&sub-nv12m;
|
||||||
|
&sub-nv12mt;
|
||||||
&sub-nv16;
|
&sub-nv16;
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue