Specify GUID and FourCC codes mapping for Depth-related pixel formats advertised by Intel RealSense(tm) SR300 depth camera. Provide documentation for the new INZI pixel format introduced. --------------------------------------------------------------------- Intel Israel (74) Limited This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies.
From e9693dd008bdaaafa2e2b57762cb75f84649de2e Mon Sep 17 00:00:00 2001 From: Aviv Greenberg <aviv.d.greenberg@xxxxxxxxx> Date: Tue, 15 Nov 2016 12:10:09 +0200 Subject: [PATCH 1/2] UVC: Add support for Intel SR300 depth camera Add support for Intel SR300 depth camera in uvc driver. This includes adding three uvc GUIDs for the required pixel formats, adding a new V4L pixel format definition to user api headers, and updating the uvc driver GUID-to-4cc tables with the new formats. Signed-off-by: Aviv Greenberg <aviv.d.greenberg@xxxxxxxxx> Signed-off-by: Evgeni Raikhel <evgeni.raikhel@xxxxxxxxx> --- drivers/media/usb/uvc/uvc_driver.c | 15 +++++++++++++++ drivers/media/usb/uvc/uvcvideo.h | 9 +++++++++ include/uapi/linux/videodev2.h | 1 + 3 files changed, 25 insertions(+) diff --git a/drivers/media/usb/uvc/uvc_driver.c b/drivers/media/usb/uvc/uvc_driver.c index 11744f92097b..5b96a89f29ae 100644 --- a/drivers/media/usb/uvc/uvc_driver.c +++ b/drivers/media/usb/uvc/uvc_driver.c @@ -168,6 +168,21 @@ static struct uvc_format_desc uvc_fmts[] = { .guid = UVC_GUID_FORMAT_RW10, .fcc = V4L2_PIX_FMT_SRGGB10P, }, + { + .name = "Depth data 16-bit (Z16)", + .guid = UVC_GUID_FORMAT_INVZ, + .fcc = V4L2_PIX_FMT_Z16, + }, + { + .name = "IR:Depth 26-bit (INZI)", + .guid = UVC_GUID_FORMAT_INZI, + .fcc = V4L2_PIX_FMT_INZI, + }, + { + .name = "Greyscale 10-bit (Y10 )", + .guid = UVC_GUID_FORMAT_INVI, + .fcc = V4L2_PIX_FMT_Y10, + }, }; /* ------------------------------------------------------------------------ diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h index 7e4d3eea371b..460b99ca99b7 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h @@ -131,6 +131,15 @@ #define UVC_GUID_FORMAT_RW10 \ { 'R', 'W', '1', '0', 0x00, 0x00, 0x10, 0x00, \ 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71} +#define UVC_GUID_FORMAT_INVZ \ + { 'I', 'N', 'V', 'Z', 0x90, 0x2d, 0x58, 0x4a, \ + 0x92, 0x0b, 0x77, 0x3f, 0x1f, 0x2c, 0x55, 0x6b} +#define UVC_GUID_FORMAT_INZI \ + { 'I', 'N', 'Z', 'I', 0x66, 0x1a, 0x42, 0xa2, \ + 0x90, 0x65, 0xd0, 0x18, 0x14, 0xa8, 0xef, 0x8a} +#define UVC_GUID_FORMAT_INVI \ + { 'I', 'N', 'V', 'I', 0xdb, 0x57, 0x49, 0x5e, \ + 0x8e, 0x3f, 0xf4, 0x79, 0x53, 0x2b, 0x94, 0x6f} /* ------------------------------------------------------------------------ * Driver specific constants. diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index d3f613e2c54a..4ab995bbec5b 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -659,6 +659,7 @@ struct v4l2_pix_format { #define V4L2_PIX_FMT_Y12I v4l2_fourcc('Y', '1', '2', 'I') /* Greyscale 12-bit L/R interleaved */ #define V4L2_PIX_FMT_Z16 v4l2_fourcc('Z', '1', '6', ' ') /* Depth data 16-bit */ #define V4L2_PIX_FMT_MT21C v4l2_fourcc('M', 'T', '2', '1') /* Mediatek compressed block mode */ +#define V4L2_PIX_FMT_INZI v4l2_fourcc('I', 'N', 'Z', 'I') /* Intel Infrared 10-bit linked with Depth 16-bit */ /* SDR formats - used only for Software Defined Radio devices */ #define V4L2_SDR_FMT_CU8 v4l2_fourcc('C', 'U', '0', '8') /* IQ u8 */ -- 2.7.4
From 581f4c3e60d8e7895bc34f9e0e90476eed31fa8d Mon Sep 17 00:00:00 2001 From: Evgeni Raikhel <evgeni.raikhel@xxxxxxxxx> Date: Wed, 16 Nov 2016 11:53:49 +0200 Subject: [PATCH 2/2] Document Intel SR300 Depth camera INZI format Provide the frame structure and data layout of V4L2-PIX-FMT-INZI format utilized by Intel SR300 Depth camera. This is a complimentary patch for: [PATCH] UVC: Add support for Intel SR300 depth camera Signed-off-by: Evgeni Raikhel <evgeni.raikhel@xxxxxxxxx> --- Documentation/media/uapi/v4l/pixfmt-inzi.rst | 40 ++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Documentation/media/uapi/v4l/pixfmt-inzi.rst diff --git a/Documentation/media/uapi/v4l/pixfmt-inzi.rst b/Documentation/media/uapi/v4l/pixfmt-inzi.rst new file mode 100644 index 000000000000..cdfdeae4a664 --- /dev/null +++ b/Documentation/media/uapi/v4l/pixfmt-inzi.rst @@ -0,0 +1,40 @@ +.. -*- coding: utf-8; mode: rst -*- + +.. _V4L2-PIX-FMT-INZI: + +************************** +V4L2_PIX_FMT_INZI ('INZI') +************************** + +Infrared 10-bit linked with Depth 16-bit images + + +Description +=========== + +Custom multi-planar format used by Intel SR300 Depth cameras, comprise of Infrared image followed by Depth data. +The pixel definition is 32-bpp, with the Depth and Infrared Data split into separate continuous planes of identical dimensions. + +The first plane - Infrared data - is stored in V4L2_PIX_FMT_Y10 (see :ref:`pixfmt-y10`) greyscale format. Each pixel is 16-bit cell, with actual data present in the 10 LSBs with values in range 0 to 1023. The six remaining MSBs are padded with zeros. + +The second plane provides 16-bit per-pixel Depth data in V4L2_PIX_FMT_Z16 (:ref:`pixfmt-z16`) format. + + +**Frame Structure.** +Each cell is a 16-bit word with the significant data byte is stored at lower memory address (little-endian). + ++-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ +| Ir\ :sub:`0` | Ir\ :sub:`1` | Ir\ :sub:`2` | ... | ... | ... | ++-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ +| ... ... ... | +| Infrared Data | +| ... ... ... | ++-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ +| Ir\ :sub:`n-3` | Ir\ :sub:`n-2` | Ir\ :sub:`n-1` | Depth\ :sub:`0` | Depth\ :sub:`1` | Depth\ :sub:`2` | ++-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ +| ... ... ... | +| Depth Data | +| ... ... ... | ++-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ +| ... | ... | ... |Depth\ :sub:`n-3`|Depth\ :sub:`n-2`|Depth\ :sub:`n-1`| ++-----------------+-----------------+-----------------+-----------------+-----------------+-----------------+ -- 2.7.4