Re: [PATCH 4/4] V4L/DVB: v4l: document new Bayer and monochrome pixelformats

From: Mauro Carvalho Chehab
Date: Wed Feb 17 2010 - 15:32:33 EST


Randy,

Mauro Carvalho Chehab wrote:
> Document all four 10-bit Bayer formats, 10-bit monochrome and a missing
> 8-bit Bayer formats.
>
> [mchehab@xxxxxxxxxx: remove duplicated symbol for V4L2-PIX-FMT-SGRBG10]
> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>
> Signed-off-by: Mauro Carvalho Chehab <mchehab@xxxxxxxxxx>

Although patch 0/4 has the correct authorship:

Guennadi Liakhovetski (1):
V4L/DVB: v4l: document new Bayer and monochrome pixel formats

Unfortunately git format-patch didn't preserve the authorship on this patch
(or my emailer removed the additional From:)

Please fix it before applying:

From: Guennadi Liakhovetski <g.liakhovetski@xxxxxx>

If you prefer, I can apply this series on my tree after your ack.

Cheers,
Mauro.

> ---
> Documentation/DocBook/Makefile | 3 +
> Documentation/DocBook/v4l/pixfmt-srggb10.xml | 90 ++++++++++++++++++++++++++
> Documentation/DocBook/v4l/pixfmt-srggb8.xml | 67 +++++++++++++++++++
> Documentation/DocBook/v4l/pixfmt-y10.xml | 79 ++++++++++++++++++++++
> Documentation/DocBook/v4l/pixfmt.xml | 8 +--
> 5 files changed, 242 insertions(+), 5 deletions(-)
> create mode 100644 Documentation/DocBook/v4l/pixfmt-srggb10.xml
> create mode 100644 Documentation/DocBook/v4l/pixfmt-srggb8.xml
> create mode 100644 Documentation/DocBook/v4l/pixfmt-y10.xml
>
> diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
> index 65deaba..1c796fc 100644
> --- a/Documentation/DocBook/Makefile
> +++ b/Documentation/DocBook/Makefile
> @@ -309,6 +309,9 @@ V4L_SGMLS = \
> v4l/pixfmt-yuv422p.xml \
> v4l/pixfmt-yuyv.xml \
> v4l/pixfmt-yvyu.xml \
> + v4l/pixfmt-srggb10.xml \
> + v4l/pixfmt-srggb8.xml \
> + v4l/pixfmt-y10.xml \
> v4l/pixfmt.xml \
> v4l/vidioc-cropcap.xml \
> v4l/vidioc-dbg-g-register.xml \
> diff --git a/Documentation/DocBook/v4l/pixfmt-srggb10.xml b/Documentation/DocBook/v4l/pixfmt-srggb10.xml
> new file mode 100644
> index 0000000..7b27409
> --- /dev/null
> +++ b/Documentation/DocBook/v4l/pixfmt-srggb10.xml
> @@ -0,0 +1,90 @@
> + <refentry>
> + <refmeta>
> + <refentrytitle>V4L2_PIX_FMT_SRGGB10 ('RG10'),
> + V4L2_PIX_FMT_SGRBG10 ('BA10'),
> + V4L2_PIX_FMT_SGBRG10 ('GB10'),
> + V4L2_PIX_FMT_SBGGR10 ('BG10'),
> + </refentrytitle>
> + &manvol;
> + </refmeta>
> + <refnamediv>
> + <refname id="V4L2-PIX-FMT-SRGGB10"><constant>V4L2_PIX_FMT_SRGGB10</constant></refname>
> + <refname id="V4L2-PIX-FMT-SGRBG10"><constant>V4L2_PIX_FMT_SGRBG10</constant></refname>
> + <refname id="V4L2-PIX-FMT-SGBRG10"><constant>V4L2_PIX_FMT_SGBRG10</constant></refname>
> + <refname id="V4L2-PIX-FMT-SBGGR10"><constant>V4L2_PIX_FMT_SBGGR10</constant></refname>
> + <refpurpose>10-bit Bayer formats expanded to 16 bits</refpurpose>
> + </refnamediv>
> + <refsect1>
> + <title>Description</title>
> +
> + <para>The following four pixel formats are raw sRGB / Bayer formats with
> +10 bits per colour. Each colour component is stored in a 16-bit word, with 6
> +unused high bits filled with zeros. Each n-pixel row contains n/2 green samples
> +and n/2 blue or red samples, with alternating red and blue rows. Bytes are
> +stored in memory in little endian order. They are conventionally described
> +as GRGR... BGBG..., RGRG... GBGB..., etc. Below is an example of one of these
> +formats</para>
> +
> + <example>
> + <title><constant>V4L2_PIX_FMT_SBGGR10</constant> 4 &times; 4
> +pixel image</title>
> +
> + <formalpara>
> + <title>Byte Order.</title>
> + <para>Each cell is one byte, high 6 bits in high bytes are 0.
> + <informaltable frame="none">
> + <tgroup cols="5" align="center">
> + <colspec align="left" colwidth="2*" />
> + <tbody valign="top">
> + <row>
> + <entry>start&nbsp;+&nbsp;0:</entry>
> + <entry>B<subscript>00low</subscript></entry>
> + <entry>B<subscript>00high</subscript></entry>
> + <entry>G<subscript>01low</subscript></entry>
> + <entry>G<subscript>01high</subscript></entry>
> + <entry>B<subscript>02low</subscript></entry>
> + <entry>B<subscript>02high</subscript></entry>
> + <entry>G<subscript>03low</subscript></entry>
> + <entry>G<subscript>03high</subscript></entry>
> + </row>
> + <row>
> + <entry>start&nbsp;+&nbsp;8:</entry>
> + <entry>G<subscript>10low</subscript></entry>
> + <entry>G<subscript>10high</subscript></entry>
> + <entry>R<subscript>11low</subscript></entry>
> + <entry>R<subscript>11high</subscript></entry>
> + <entry>G<subscript>12low</subscript></entry>
> + <entry>G<subscript>12high</subscript></entry>
> + <entry>R<subscript>13low</subscript></entry>
> + <entry>R<subscript>13high</subscript></entry>
> + </row>
> + <row>
> + <entry>start&nbsp;+&nbsp;16:</entry>
> + <entry>B<subscript>20low</subscript></entry>
> + <entry>B<subscript>20high</subscript></entry>
> + <entry>G<subscript>21low</subscript></entry>
> + <entry>G<subscript>21high</subscript></entry>
> + <entry>B<subscript>22low</subscript></entry>
> + <entry>B<subscript>22high</subscript></entry>
> + <entry>G<subscript>23low</subscript></entry>
> + <entry>G<subscript>23high</subscript></entry>
> + </row>
> + <row>
> + <entry>start&nbsp;+&nbsp;24:</entry>
> + <entry>G<subscript>30low</subscript></entry>
> + <entry>G<subscript>30high</subscript></entry>
> + <entry>R<subscript>31low</subscript></entry>
> + <entry>R<subscript>31high</subscript></entry>
> + <entry>G<subscript>32low</subscript></entry>
> + <entry>G<subscript>32high</subscript></entry>
> + <entry>R<subscript>33low</subscript></entry>
> + <entry>R<subscript>33high</subscript></entry>
> + </row>
> + </tbody>
> + </tgroup>
> + </informaltable>
> + </para>
> + </formalpara>
> + </example>
> + </refsect1>
> +</refentry>
> diff --git a/Documentation/DocBook/v4l/pixfmt-srggb8.xml b/Documentation/DocBook/v4l/pixfmt-srggb8.xml
> new file mode 100644
> index 0000000..2570e3b
> --- /dev/null
> +++ b/Documentation/DocBook/v4l/pixfmt-srggb8.xml
> @@ -0,0 +1,67 @@
> + <refentry id="V4L2-PIX-FMT-SRGGB8">
> + <refmeta>
> + <refentrytitle>V4L2_PIX_FMT_SRGGB8 ('RGGB')</refentrytitle>
> + &manvol;
> + </refmeta>
> + <refnamediv>
> + <refname><constant>V4L2_PIX_FMT_SRGGB8</constant></refname>
> + <refpurpose>Bayer RGB format</refpurpose>
> + </refnamediv>
> + <refsect1>
> + <title>Description</title>
> +
> + <para>This is commonly the native format of digital cameras,
> +reflecting the arrangement of sensors on the CCD device. Only one red,
> +green or blue value is given for each pixel. Missing components must
> +be interpolated from neighbouring pixels. From left to right the first
> +row consists of a red and green value, the second row of a green and
> +blue value. This scheme repeats to the right and down for every two
> +columns and rows.</para>
> +
> + <example>
> + <title><constant>V4L2_PIX_FMT_SRGGB8</constant> 4 &times; 4
> +pixel image</title>
> +
> + <formalpara>
> + <title>Byte Order.</title>
> + <para>Each cell is one byte.
> + <informaltable frame="none">
> + <tgroup cols="5" align="center">
> + <colspec align="left" colwidth="2*" />
> + <tbody valign="top">
> + <row>
> + <entry>start&nbsp;+&nbsp;0:</entry>
> + <entry>R<subscript>00</subscript></entry>
> + <entry>G<subscript>01</subscript></entry>
> + <entry>R<subscript>02</subscript></entry>
> + <entry>G<subscript>03</subscript></entry>
> + </row>
> + <row>
> + <entry>start&nbsp;+&nbsp;4:</entry>
> + <entry>G<subscript>10</subscript></entry>
> + <entry>B<subscript>11</subscript></entry>
> + <entry>G<subscript>12</subscript></entry>
> + <entry>B<subscript>13</subscript></entry>
> + </row>
> + <row>
> + <entry>start&nbsp;+&nbsp;8:</entry>
> + <entry>R<subscript>20</subscript></entry>
> + <entry>G<subscript>21</subscript></entry>
> + <entry>R<subscript>22</subscript></entry>
> + <entry>G<subscript>23</subscript></entry>
> + </row>
> + <row>
> + <entry>start&nbsp;+&nbsp;12:</entry>
> + <entry>G<subscript>30</subscript></entry>
> + <entry>B<subscript>31</subscript></entry>
> + <entry>G<subscript>32</subscript></entry>
> + <entry>B<subscript>33</subscript></entry>
> + </row>
> + </tbody>
> + </tgroup>
> + </informaltable>
> + </para>
> + </formalpara>
> + </example>
> + </refsect1>
> + </refentry>
> diff --git a/Documentation/DocBook/v4l/pixfmt-y10.xml b/Documentation/DocBook/v4l/pixfmt-y10.xml
> new file mode 100644
> index 0000000..d065043
> --- /dev/null
> +++ b/Documentation/DocBook/v4l/pixfmt-y10.xml
> @@ -0,0 +1,79 @@
> +<refentry id="V4L2-PIX-FMT-Y10">
> + <refmeta>
> + <refentrytitle>V4L2_PIX_FMT_Y10 ('Y10 ')</refentrytitle>
> + &manvol;
> + </refmeta>
> + <refnamediv>
> + <refname><constant>V4L2_PIX_FMT_Y10</constant></refname>
> + <refpurpose>Grey-scale image</refpurpose>
> + </refnamediv>
> + <refsect1>
> + <title>Description</title>
> +
> + <para>This is a grey-scale image with a depth of 10 bits per pixel. Pixels
> +are stored in 16-bit words with unused high bits padded with 0. The least
> +significant byte is stored at lower memory addresses (little-endian).</para>
> +
> + <example>
> + <title><constant>V4L2_PIX_FMT_Y10</constant> 4 &times; 4
> +pixel image</title>
> +
> + <formalpara>
> + <title>Byte Order.</title>
> + <para>Each cell is one byte.
> + <informaltable frame="none">
> + <tgroup cols="9" align="center">
> + <colspec align="left" colwidth="2*" />
> + <tbody valign="top">
> + <row>
> + <entry>start&nbsp;+&nbsp;0:</entry>
> + <entry>Y'<subscript>00low</subscript></entry>
> + <entry>Y'<subscript>00high</subscript></entry>
> + <entry>Y'<subscript>01low</subscript></entry>
> + <entry>Y'<subscript>01high</subscript></entry>
> + <entry>Y'<subscript>02low</subscript></entry>
> + <entry>Y'<subscript>02high</subscript></entry>
> + <entry>Y'<subscript>03low</subscript></entry>
> + <entry>Y'<subscript>03high</subscript></entry>
> + </row>
> + <row>
> + <entry>start&nbsp;+&nbsp;8:</entry>
> + <entry>Y'<subscript>10low</subscript></entry>
> + <entry>Y'<subscript>10high</subscript></entry>
> + <entry>Y'<subscript>11low</subscript></entry>
> + <entry>Y'<subscript>11high</subscript></entry>
> + <entry>Y'<subscript>12low</subscript></entry>
> + <entry>Y'<subscript>12high</subscript></entry>
> + <entry>Y'<subscript>13low</subscript></entry>
> + <entry>Y'<subscript>13high</subscript></entry>
> + </row>
> + <row>
> + <entry>start&nbsp;+&nbsp;16:</entry>
> + <entry>Y'<subscript>20low</subscript></entry>
> + <entry>Y'<subscript>20high</subscript></entry>
> + <entry>Y'<subscript>21low</subscript></entry>
> + <entry>Y'<subscript>21high</subscript></entry>
> + <entry>Y'<subscript>22low</subscript></entry>
> + <entry>Y'<subscript>22high</subscript></entry>
> + <entry>Y'<subscript>23low</subscript></entry>
> + <entry>Y'<subscript>23high</subscript></entry>
> + </row>
> + <row>
> + <entry>start&nbsp;+&nbsp;24:</entry>
> + <entry>Y'<subscript>30low</subscript></entry>
> + <entry>Y'<subscript>30high</subscript></entry>
> + <entry>Y'<subscript>31low</subscript></entry>
> + <entry>Y'<subscript>31high</subscript></entry>
> + <entry>Y'<subscript>32low</subscript></entry>
> + <entry>Y'<subscript>32high</subscript></entry>
> + <entry>Y'<subscript>33low</subscript></entry>
> + <entry>Y'<subscript>33high</subscript></entry>
> + </row>
> + </tbody>
> + </tgroup>
> + </informaltable>
> + </para>
> + </formalpara>
> + </example>
> + </refsect1>
> +</refentry>
> diff --git a/Documentation/DocBook/v4l/pixfmt.xml b/Documentation/DocBook/v4l/pixfmt.xml
> index 6e38f50..7e2c38e 100644
> --- a/Documentation/DocBook/v4l/pixfmt.xml
> +++ b/Documentation/DocBook/v4l/pixfmt.xml
> @@ -566,7 +566,9 @@ access the palette, this must be done with ioctls of the Linux framebuffer API.<
> &sub-sbggr8;
> &sub-sgbrg8;
> &sub-sgrbg8;
> + &sub-srggb8;
> &sub-sbggr16;
> + &sub-srggb10;
> </section>
>
> <section id="yuv-formats">
> @@ -589,6 +591,7 @@ information.</para>
>
> &sub-packed-yuv;
> &sub-grey;
> + &sub-y10;
> &sub-y16;
> &sub-yuyv;
> &sub-uyvy;
> @@ -710,11 +713,6 @@ kernel sources in the file <filename>Documentation/video4linux/cx2341x/README.hm
> <entry>'S561'</entry>
> <entry>Compressed GBRG Bayer format used by the gspca driver.</entry>
> </row>
> - <row id="V4L2-PIX-FMT-SGRBG10">
> - <entry><constant>V4L2_PIX_FMT_SGRBG10</constant></entry>
> - <entry>'DA10'</entry>
> - <entry>10 bit raw Bayer, expanded to 16 bits.</entry>
> - </row>
> <row id="V4L2-PIX-FMT-SGRBG10DPCM8">
> <entry><constant>V4L2_PIX_FMT_SGRBG10DPCM8</constant></entry>
> <entry>'DB10'</entry>


--

Cheers,
Mauro
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/