Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | |
| 3 | .. _V4L2-PIX-FMT-Y12I: |
| 4 | |
| 5 | ************************** |
| 6 | V4L2_PIX_FMT_Y12I ('Y12I') |
| 7 | ************************** |
| 8 | |
Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 9 | Interleaved grey-scale image, e.g. from a stereo-pair |
| 10 | |
| 11 | |
| 12 | Description |
| 13 | =========== |
| 14 | |
| 15 | This is a grey-scale image with a depth of 12 bits per pixel, but with |
| 16 | pixels from 2 sources interleaved and bit-packed. Each pixel is stored |
| 17 | in a 24-bit word in the little-endian order. On a little-endian machine |
| 18 | these pixels can be deinterlaced using |
| 19 | |
Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 20 | .. code-block:: c |
| 21 | |
| 22 | __u8 *buf; |
| 23 | left0 = 0xfff & *(__u16 *)buf; |
| 24 | right0 = *(__u16 *)(buf + 1) >> 4; |
| 25 | |
| 26 | **Bit-packed representation.** |
Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 27 | pixels cross the byte boundary and have a ratio of 3 bytes for each |
| 28 | interleaved pixel. |
| 29 | |
Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 30 | .. flat-table:: |
| 31 | :header-rows: 0 |
| 32 | :stub-columns: 0 |
Markus Heiser | 5377d91 | 2016-06-30 15:18:56 +0200 | [diff] [blame] | 33 | |
Laurent Pinchart | c2b66ca | 2016-09-05 08:44:34 -0300 | [diff] [blame] | 34 | * - Y'\ :sub:`0left[7:0]` |
| 35 | - Y'\ :sub:`0right[3:0]`\ Y'\ :sub:`0left[11:8]` |
| 36 | - Y'\ :sub:`0right[11:4]` |