diff options
-rw-r--r-- | Documentation/DocBook/media/v4l/pixfmt-srggb10p.xml | 99 | ||||
-rw-r--r-- | Documentation/DocBook/media/v4l/pixfmt.xml | 1 | ||||
-rw-r--r-- | include/uapi/linux/videodev2.h | 5 |
3 files changed, 105 insertions, 0 deletions
diff --git a/Documentation/DocBook/media/v4l/pixfmt-srggb10p.xml b/Documentation/DocBook/media/v4l/pixfmt-srggb10p.xml new file mode 100644 index 000000000000..30aa63581fe3 --- /dev/null +++ b/Documentation/DocBook/media/v4l/pixfmt-srggb10p.xml | |||
@@ -0,0 +1,99 @@ | |||
1 | <refentry id="pixfmt-srggb10p"> | ||
2 | <refmeta> | ||
3 | <refentrytitle>V4L2_PIX_FMT_SRGGB10P ('pRAA'), | ||
4 | V4L2_PIX_FMT_SGRBG10P ('pgAA'), | ||
5 | V4L2_PIX_FMT_SGBRG10P ('pGAA'), | ||
6 | V4L2_PIX_FMT_SBGGR10P ('pBAA'), | ||
7 | </refentrytitle> | ||
8 | &manvol; | ||
9 | </refmeta> | ||
10 | <refnamediv> | ||
11 | <refname id="V4L2-PIX-FMT-SRGGB10P"><constant>V4L2_PIX_FMT_SRGGB10P</constant></refname> | ||
12 | <refname id="V4L2-PIX-FMT-SGRBG10P"><constant>V4L2_PIX_FMT_SGRBG10P</constant></refname> | ||
13 | <refname id="V4L2-PIX-FMT-SGBRG10P"><constant>V4L2_PIX_FMT_SGBRG10P</constant></refname> | ||
14 | <refname id="V4L2-PIX-FMT-SBGGR10P"><constant>V4L2_PIX_FMT_SBGGR10P</constant></refname> | ||
15 | <refpurpose>10-bit packed Bayer formats</refpurpose> | ||
16 | </refnamediv> | ||
17 | <refsect1> | ||
18 | <title>Description</title> | ||
19 | |||
20 | <para>These four pixel formats are packed raw sRGB / | ||
21 | Bayer formats with 10 bits per colour. Every four consecutive | ||
22 | colour components are packed into 5 bytes. Each of the first 4 | ||
23 | bytes contain the 8 high order bits of the pixels, and the | ||
24 | fifth byte contains the two least significants bits of each | ||
25 | pixel, in the same order.</para> | ||
26 | |||
27 | <para>Each n-pixel row contains n/2 green samples and n/2 blue | ||
28 | or red samples, with alternating green-red and green-blue | ||
29 | rows. They are conventionally described as GRGR... BGBG..., | ||
30 | RGRG... GBGB..., etc. Below is an example of one of these | ||
31 | formats:</para> | ||
32 | |||
33 | <example> | ||
34 | <title><constant>V4L2_PIX_FMT_SBGGR10P</constant> 4 × 4 | ||
35 | pixel image</title> | ||
36 | |||
37 | <formalpara> | ||
38 | <title>Byte Order.</title> | ||
39 | <para>Each cell is one byte. | ||
40 | <informaltable frame="topbot" colsep="1" rowsep="1"> | ||
41 | <tgroup cols="5" align="center" border="1"> | ||
42 | <colspec align="left" colwidth="2*" /> | ||
43 | <tbody valign="top"> | ||
44 | <row> | ||
45 | <entry>start + 0:</entry> | ||
46 | <entry>B<subscript>00high</subscript></entry> | ||
47 | <entry>G<subscript>01high</subscript></entry> | ||
48 | <entry>B<subscript>02high</subscript></entry> | ||
49 | <entry>G<subscript>03high</subscript></entry> | ||
50 | <entry>B<subscript>00low</subscript>(bits 7--6) | ||
51 | G<subscript>01low</subscript>(bits 5--4) | ||
52 | B<subscript>02low</subscript>(bits 3--2) | ||
53 | G<subscript>03low</subscript>(bits 1--0) | ||
54 | </entry> | ||
55 | </row> | ||
56 | <row> | ||
57 | <entry>start + 5:</entry> | ||
58 | <entry>G<subscript>10high</subscript></entry> | ||
59 | <entry>R<subscript>11high</subscript></entry> | ||
60 | <entry>G<subscript>12high</subscript></entry> | ||
61 | <entry>R<subscript>13high</subscript></entry> | ||
62 | <entry>G<subscript>10low</subscript>(bits 7--6) | ||
63 | R<subscript>11low</subscript>(bits 5--4) | ||
64 | G<subscript>12low</subscript>(bits 3--2) | ||
65 | R<subscript>13low</subscript>(bits 1--0) | ||
66 | </entry> | ||
67 | </row> | ||
68 | <row> | ||
69 | <entry>start + 10:</entry> | ||
70 | <entry>B<subscript>20high</subscript></entry> | ||
71 | <entry>G<subscript>21high</subscript></entry> | ||
72 | <entry>B<subscript>22high</subscript></entry> | ||
73 | <entry>G<subscript>23high</subscript></entry> | ||
74 | <entry>B<subscript>20low</subscript>(bits 7--6) | ||
75 | G<subscript>21low</subscript>(bits 5--4) | ||
76 | B<subscript>22low</subscript>(bits 3--2) | ||
77 | G<subscript>23low</subscript>(bits 1--0) | ||
78 | </entry> | ||
79 | </row> | ||
80 | <row> | ||
81 | <entry>start + 15:</entry> | ||
82 | <entry>G<subscript>30high</subscript></entry> | ||
83 | <entry>R<subscript>31high</subscript></entry> | ||
84 | <entry>G<subscript>32high</subscript></entry> | ||
85 | <entry>R<subscript>33high</subscript></entry> | ||
86 | <entry>G<subscript>30low</subscript>(bits 7--6) | ||
87 | R<subscript>31low</subscript>(bits 5--4) | ||
88 | G<subscript>32low</subscript>(bits 3--2) | ||
89 | R<subscript>33low</subscript>(bits 1--0) | ||
90 | </entry> | ||
91 | </row> | ||
92 | </tbody> | ||
93 | </tgroup> | ||
94 | </informaltable> | ||
95 | </para> | ||
96 | </formalpara> | ||
97 | </example> | ||
98 | </refsect1> | ||
99 | </refentry> | ||
diff --git a/Documentation/DocBook/media/v4l/pixfmt.xml b/Documentation/DocBook/media/v4l/pixfmt.xml index d5eca4b8f74b..5e0352c50324 100644 --- a/Documentation/DocBook/media/v4l/pixfmt.xml +++ b/Documentation/DocBook/media/v4l/pixfmt.xml | |||
@@ -1405,6 +1405,7 @@ access the palette, this must be done with ioctls of the Linux framebuffer API.< | |||
1405 | &sub-srggb8; | 1405 | &sub-srggb8; |
1406 | &sub-sbggr16; | 1406 | &sub-sbggr16; |
1407 | &sub-srggb10; | 1407 | &sub-srggb10; |
1408 | &sub-srggb10p; | ||
1408 | &sub-srggb10alaw8; | 1409 | &sub-srggb10alaw8; |
1409 | &sub-srggb10dpcm8; | 1410 | &sub-srggb10dpcm8; |
1410 | &sub-srggb12; | 1411 | &sub-srggb12; |
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index f0b94b8fcdfb..fbdc3602ee27 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h | |||
@@ -463,6 +463,11 @@ struct v4l2_pix_format { | |||
463 | #define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10 GBGB.. RGRG.. */ | 463 | #define V4L2_PIX_FMT_SGBRG10 v4l2_fourcc('G', 'B', '1', '0') /* 10 GBGB.. RGRG.. */ |
464 | #define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10 GRGR.. BGBG.. */ | 464 | #define V4L2_PIX_FMT_SGRBG10 v4l2_fourcc('B', 'A', '1', '0') /* 10 GRGR.. BGBG.. */ |
465 | #define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10 RGRG.. GBGB.. */ | 465 | #define V4L2_PIX_FMT_SRGGB10 v4l2_fourcc('R', 'G', '1', '0') /* 10 RGRG.. GBGB.. */ |
466 | /* 10bit raw bayer packed, 5 bytes for every 4 pixels */ | ||
467 | #define V4L2_PIX_FMT_SBGGR10P v4l2_fourcc('p', 'B', 'A', 'A') | ||
468 | #define V4L2_PIX_FMT_SGBRG10P v4l2_fourcc('p', 'G', 'A', 'A') | ||
469 | #define V4L2_PIX_FMT_SGRBG10P v4l2_fourcc('p', 'g', 'A', 'A') | ||
470 | #define V4L2_PIX_FMT_SRGGB10P v4l2_fourcc('p', 'R', 'A', 'A') | ||
466 | /* 10bit raw bayer a-law compressed to 8 bits */ | 471 | /* 10bit raw bayer a-law compressed to 8 bits */ |
467 | #define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8') | 472 | #define V4L2_PIX_FMT_SBGGR10ALAW8 v4l2_fourcc('a', 'B', 'A', '8') |
468 | #define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8') | 473 | #define V4L2_PIX_FMT_SGBRG10ALAW8 v4l2_fourcc('a', 'G', 'A', '8') |