UVC 中的红外流支持

在 Windows 10 版本 1607 及更高版本中,内置 USB 视频类 (UVC) 驱动程序支持生成红外 (IR) 流的相机。

这些相机捕获场景的亮度值,并通过 USB 以未压缩格式或压缩的 MJPEG 格式传输帧。 这些相机及其流通过媒体捕获管道向应用程序公开。

以下 IR 格式类型 GUID 用于指定流的视频格式描述符,以便向应用程序正确公开 IR 流。

这些 IR 格式类型 GUID 在 ksmedia.h 中定义:

IR 格式类型 GUID 说明
KSDATAFORMAT_SUBTYPE_L8_IR 仅 8 位 luma 帧
KSDATAFORMAT_SUBTYPE_L16_IR 仅 16 位 luma 帧
KSDATAFORMAT_SUBTYPE_MJPEG_IR MJPEG 压缩的仅限 luma 的帧

指定这些 IR 格式类型 GUID 时,捕获管道会自动将这些流标记为 IR 流,这有助于应用程序为其方案选择正确的流。

// Example: Format descriptor for UVC 1.1 frame based uncompressed format

typedef struct _VIDEO_FORMAT_FRAME
{
    UCHAR bLength;
    UCHAR bDescriptorType;
    UCHAR bDescriptorSubtype;
    UCHAR bFormatIndex;
    UCHAR bNumFrameDescriptors;
    GUID  guidFormat;           // guidFormat must contain one of the IIR format type GUIDs from the table above
    UCHAR bBitsPerPixel;
    UCHAR bDefaultFrameIndex;
    UCHAR bAspectRatioX;
    UCHAR bAspectRatioY;
    UCHAR bmInterlaceFlags;
    UCHAR bCopyProtect;
    UCHAR bVariableSize;
} VIDEO_FORMAT_FRAME, *PVIDEO_FORMAT_FRAME;