Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Kamil Debski and committed by
Mauro Carvalho Chehab
bd08a0cd 91707b8b

+76
+1
Documentation/DocBook/media-entities.tmpl
··· 272 272 <!ENTITY sub-grey SYSTEM "v4l/pixfmt-grey.xml"> 273 273 <!ENTITY sub-nv12 SYSTEM "v4l/pixfmt-nv12.xml"> 274 274 <!ENTITY sub-nv12m SYSTEM "v4l/pixfmt-nv12m.xml"> 275 + <!ENTITY sub-nv12mt SYSTEM "v4l/pixfmt-nv12mt.xml"> 275 276 <!ENTITY sub-nv16 SYSTEM "v4l/pixfmt-nv16.xml"> 276 277 <!ENTITY sub-packed-rgb SYSTEM "v4l/pixfmt-packed-rgb.xml"> 277 278 <!ENTITY sub-packed-yuv SYSTEM "v4l/pixfmt-packed-yuv.xml">
Documentation/DocBook/v4l/nv12mt.gif

This is a binary file and will not be displayed.

Documentation/DocBook/v4l/nv12mt_example.gif

This is a binary file and will not be displayed.

+74
Documentation/DocBook/v4l/pixfmt-nv12mt.xml
··· 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"> 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 + -->
+1
Documentation/DocBook/v4l/pixfmt.xml
··· 709 709 &sub-yuv411p; 710 710 &sub-nv12; 711 711 &sub-nv12m; 712 + &sub-nv12mt; 712 713 &sub-nv16; 713 714 </section> 714 715