Skip to content

Commit d26203d

Browse files
committed
drivers: video: formats: add grayscale formats
Add the grayscale formats in the same packing as defined by MIPI. Signed-off-by: Josuah Demangeon <[email protected]>
1 parent bb0df8e commit d26203d

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

include/zephyr/drivers/video.h

+56
Original file line numberDiff line numberDiff line change
@@ -1005,6 +1005,58 @@ void video_closest_frmival(const struct device *dev, enum video_endpoint_id ep,
10051005
*/
10061006
#define VIDEO_PIX_FMT_SRGGB14P VIDEO_FOURCC('p', 'B', 'E', 'E')
10071007

1008+
/**
1009+
* @}
1010+
*/
1011+
1012+
/**
1013+
* @name Grayscale formats
1014+
* Luminance (Y) channel only, in various bit depth and packing.
1015+
*
1016+
* When the format includes more than 8-bit per pixel, a strategy becomes needed to pack
1017+
* the bits over multiple bytes, as illustrated for each format.
1018+
*
1019+
* The number above the 'Y', 'y' are hints about which pixel number the following bits belong to.
1020+
*
1021+
* @{
1022+
*/
1023+
1024+
/**
1025+
* Also known as GREY.
1026+
*
1027+
* @verbatim
1028+
* 0 1 2 3
1029+
* | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | ...
1030+
* @endverbatim
1031+
*/
1032+
#define VIDEO_PIX_FMT_Y8 VIDEO_FOURCC('G', 'R', 'E', 'Y')
1033+
1034+
/**
1035+
* @verbatim
1036+
* 0 1 2 3 0 1 2 3
1037+
* | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | ...
1038+
* @endverbatim
1039+
*/
1040+
#define VIDEO_PIX_FMT_Y10P VIDEO_FOURCC('Y', '1', '0', 'P')
1041+
1042+
/**
1043+
* @verbatim
1044+
* 0 1 1 0 2 3 3 2
1045+
* | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | ...
1046+
* | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | ...
1047+
* @endverbatim
1048+
*/
1049+
#define VIDEO_PIX_FMT_Y12P VIDEO_FOURCC('Y', '1', '2', 'P')
1050+
1051+
/**
1052+
* @verbatim
1053+
* 0 1 2 3 1 0 2 1 3 2
1054+
* | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | yyyyyyyy | yyyyyyyy | ...
1055+
* | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | Yyyyyyyy | yyyyyyyy | yyyyyyyy | yyyyyyyy | ...
1056+
* @endverbatim
1057+
*/
1058+
#define VIDEO_PIX_FMT_Y14P VIDEO_FOURCC('Y', '1', '4', 'P')
1059+
10081060
/**
10091061
* @}
10101062
*/
@@ -1108,21 +1160,25 @@ static inline unsigned int video_bits_per_pixel(uint32_t pixfmt)
11081160
case VIDEO_PIX_FMT_GBRG8:
11091161
case VIDEO_PIX_FMT_GRBG8:
11101162
case VIDEO_PIX_FMT_RGGB8:
1163+
case VIDEO_PIX_FMT_Y8:
11111164
return 8;
11121165
case VIDEO_PIX_FMT_SBGGR10P:
11131166
case VIDEO_PIX_FMT_SGBRG10P:
11141167
case VIDEO_PIX_FMT_SGRBG10P:
11151168
case VIDEO_PIX_FMT_SRGGB10P:
1169+
case VIDEO_PIX_FMT_Y10P:
11161170
return 10;
11171171
case VIDEO_PIX_FMT_SBGGR12P:
11181172
case VIDEO_PIX_FMT_SGBRG12P:
11191173
case VIDEO_PIX_FMT_SGRBG12P:
11201174
case VIDEO_PIX_FMT_SRGGB12P:
1175+
case VIDEO_PIX_FMT_Y12P:
11211176
return 12;
11221177
case VIDEO_PIX_FMT_SBGGR14P:
11231178
case VIDEO_PIX_FMT_SGBRG14P:
11241179
case VIDEO_PIX_FMT_SGRBG14P:
11251180
case VIDEO_PIX_FMT_SRGGB14P:
1181+
case VIDEO_PIX_FMT_Y14P:
11261182
return 14;
11271183
case VIDEO_PIX_FMT_RGB565:
11281184
case VIDEO_PIX_FMT_YUYV:

0 commit comments

Comments
 (0)