~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to Documentation/DocBook/v4l/pixfmt-nv12mt.xml

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
    <refentry>
 
2
      <refmeta>
 
3
        <refentrytitle>V4L2_PIX_FMT_NV12MT ('TM12')</refentrytitle>
 
4
        &manvol;
 
5
      </refmeta>
 
6
      <refnamediv>
 
7
        <refname id="V4L2-PIX-FMT-NV12MT"><constant>V4L2_PIX_FMT_NV12MT
 
8
</constant></refname>
 
9
        <refpurpose>Formats with &frac12; horizontal and vertical
 
10
chroma resolution. This format has two planes - one for luminance and one for
 
11
chrominance. Chroma samples are interleaved. The difference to
 
12
<constant>V4L2_PIX_FMT_NV12</constant> is the memory layout. Pixels are
 
13
grouped in macroblocks of 64x32 size. The order of macroblocks in memory is
 
14
also not standard.
 
15
        </refpurpose>
 
16
      </refnamediv>
 
17
      <refsect1>
 
18
        <title>Description</title>
 
19
 
 
20
        <para>This is the two-plane versions of the YUV 4:2:0 format where data
 
21
is grouped into 64x32 macroblocks. The three components are separated into two
 
22
sub-images or planes. The Y plane has one byte per pixel and pixels are grouped
 
23
into 64x32 macroblocks. The CbCr plane has the same width, in bytes, as the Y
 
24
plane (and the image), but is half as tall in pixels. The chroma plane is also
 
25
grouped into 64x32 macroblocks.</para>
 
26
        <para>Width of the buffer has to be aligned to the multiple of 128, and
 
27
height alignment is 32. Every four adjactent buffers - two horizontally and two
 
28
vertically are grouped together and are located in memory in Z or flipped Z
 
29
order. </para>
 
30
        <para>Layout of macroblocks in memory is presented in the following
 
31
figure.</para>
 
32
        <para><figure id="nv12mt">
 
33
            <title><constant>V4L2_PIX_FMT_NV12MT</constant> macroblock Z shape
 
34
memory layout</title>
 
35
            <mediaobject>
 
36
              <imageobject>
 
37
                <imagedata fileref="nv12mt.gif" format="GIF" />
 
38
              </imageobject>
 
39
            </mediaobject>
 
40
        </figure>
 
41
        The requirement that width is multiple of 128 is implemented because,
 
42
the Z shape cannot be cut in half horizontally. In case the vertical resolution
 
43
of macroblocks is odd then the last row of macroblocks is arranged in a linear
 
44
order.  </para>
 
45
        <para>In case of chroma the layout is identical. Cb and Cr samples are
 
46
interleaved. Height of the buffer is aligned to 32.
 
47
        </para>
 
48
        <example>
 
49
          <title>Memory layout of macroblocks in <constant>V4L2_PIX_FMT_NV12
 
50
</constant> format pixel image - extreme case</title>
 
51
        <para>
 
52
        <figure id="nv12mt_ex">
 
53
            <title>Example <constant>V4L2_PIX_FMT_NV12MT</constant> memory
 
54
layout of macroblocks</title>
 
55
            <mediaobject>
 
56
              <imageobject>
 
57
                <imagedata fileref="nv12mt_example.gif" format="GIF" />
 
58
              </imageobject>
 
59
            </mediaobject>
 
60
        </figure>
 
61
        Memory layout of macroblocks of <constant>V4L2_PIX_FMT_NV12MT
 
62
</constant> format in most extreme case.
 
63
        </para>
 
64
        </example>
 
65
      </refsect1>
 
66
    </refentry>
 
67
 
 
68
  <!--
 
69
Local Variables:
 
70
mode: sgml
 
71
sgml-parent-document: "pixfmt.sgml"
 
72
indent-tabs-mode: nil
 
73
End:
 
74
  -->